<?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>233247</bug_id>
          
          <creation_ts>2021-11-17 01:32:34 -0800</creation_ts>
          <short_desc>[WebGPU] Add IPC message handlers for WebGPU</short_desc>
          <delta_ts>2021-11-17 22:06:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815866</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 01:32:34 -0800</bug_when>
    <thetext>[WebGPU] Add IPC message handlers for WebGPU</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815867</commentid>
    <comment_count>1</comment_count>
      <attachid>444497</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 01:39:05 -0800</bug_when>
    <thetext>Created attachment 444497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815868</commentid>
    <comment_count>2</comment_count>
      <attachid>444497</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 01:40:55 -0800</bug_when>
    <thetext>Comment on attachment 444497
Patch

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

&gt; Source/WebKit/ChangeLog:15
&gt; +

I haven&apos;t added the default initializers to the structs yet. I&apos;ll do that next.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816147</commentid>
    <comment_count>3</comment_count>
      <attachid>444586</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 15:06:00 -0800</bug_when>
    <thetext>Created attachment 444586
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816154</commentid>
    <comment_count>4</comment_count>
      <attachid>444588</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 15:25:01 -0800</bug_when>
    <thetext>Created attachment 444588
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816160</commentid>
    <comment_count>5</comment_count>
      <attachid>444590</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 15:34:04 -0800</bug_when>
    <thetext>Created attachment 444590
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816216</commentid>
    <comment_count>6</comment_count>
      <attachid>444607</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 16:50:08 -0800</bug_when>
    <thetext>Created attachment 444607
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816268</commentid>
    <comment_count>7</comment_count>
      <attachid>444627</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 18:58:12 -0800</bug_when>
    <thetext>Created attachment 444627
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816300</commentid>
    <comment_count>8</comment_count>
      <attachid>444635</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-17 21:00:04 -0800</bug_when>
    <thetext>Created attachment 444635
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816310</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-17 22:05:41 -0800</bug_when>
    <thetext>Committed r285981 (244378@main): &lt;https://commits.webkit.org/244378@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444635.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816311</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-17 22:06:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/85535118&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444497</attachid>
            <date>2021-11-17 01:39:05 -0800</date>
            <delta_ts>2021-11-17 09:57:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233247-20211117013904.patch</filename>
            <type>text/plain</type>
            <size>463960</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA4ODVlYTA2
NDdhOTE4YjYxNzNiZmZmMGYxNzdlMzA3ZjViNDZjMzEzLi45MTc3YWY2NGFiMjNiYTJmNDkwMmE1
NTI5ZTJkY2U3MzhhZjhmNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAor
MjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRW51bVRyYWl0
cyB0byB0aGUgZW51bSBjbGFzc2VzLCBzbyB0aGV5IGNhbiBiZSBzZXJpYWxpemVkLgorCisgICAg
ICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcDoKKyAg
ICAgICAgKFBBTDo6V2ViR1BVOjpBZGFwdGVySW1wbDo6cmVxdWVzdERldmljZSk6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBs
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmg6CisgICAg
ICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3IuaDoKKyAgICAgICAgKiBwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kT3BlcmF0aW9uLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAqIHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyVXNhZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmg6CisgICAgICAgICog
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rpb24uaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaDoKKyAgICAg
ICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRp
b24uaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmg6Cisg
ICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmg6Cisg
ICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oOgorICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmVhdHVyZU5hbWUuaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZpbHRlck1vZGUuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUxvYWRPcC5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVTWFwTW9kZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxp
bmVTdGF0aXN0aWNOYW1lLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
b3dlclByZWZlcmVuY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBy
ZWRlZmluZWRDb2xvclNwYWNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVQcmltaXRpdmVUb3BvbG9neS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUXVlcnlUeXBlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1
ZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5j
b2Rlci5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Vu
Y29kZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U2FtcGxlckJpbmRpbmdUeXBlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVTdGVuY2lsT3BlcmF0aW9uLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVU3RvcmVPcC5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVj
dC5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lv
bi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGltZW5z
aW9uLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3JtYXQu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmg6
CisKIDIwMjEtMTEtMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViR1BVXSBTdGFydCBwcmVwYXJpbmcgZm9yIHNlcmlhbGl6aW5nIGNvbW1h
bmRzIHRvIHRoZSBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZTY2NjIxZGM3YjgxODA1MmU3ZTc3
YTkyODU2M2ZlYTRhYzk4YjI3Li5lNThmYmQxNzk4Mjg2MzVlYTg3MjI5MWYzYzM2MGFkZGFhN2U2
MWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MCBAQAorMjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHUFVdIEFkZCBJUEMg
bWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgY2xhc3NlcyBpbiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVSB0byByZWNlaXZlIFdlYkdQVSdzIElQQyBtZXNzYWdlcy4KKyAgICAgICAgRWFjaCBvbmUg
b2YgdGhlc2UgY2xhc3NlcyBoYXMgYW4gYXNzb2NpYXRlZCBtZXNzYWdlcy5pbiBmaWxlLiBFYWNo
IG9mIHRoZXNlIG9iamVjdHMKKyAgICAgICAgaG9sZHMgYSBiYWNraW5nIFBBTDo6V2ViR1BVIG9i
amVjdCB3aGljaCBpcyB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uLiBUaGUgbWV0aG9kcworICAg
ICAgICB0aGF0IHJlY2VpdmUgdGhlIElQQyBtZXNzYWdlcyBhcmUgY3VycmVudGx5IHVuaW1wbGVt
ZW50ZWQsIGJ1dCBpbiBhIHN1YnNlcXVlbnQgcGF0Y2gKKyAgICAgICAgdGhleSdsbCBqdXN0IGZv
cndhcmQgb24gdGhlIGNhbGxzIHRvIHRoZWlyIGJhY2tpbmcgUEFMOjpXZWJHUFUgb2JqZWN0Lgor
CisgICAgICAgIFRoaXMgYWxzbyBhZGRzIHNlcmlhbGl6YXRpb24gcm91dGluZXMgZm9yIGFsbCB0
aGUgc3RydWN0cyBpbiBTaGFyZWQvV2ViR1BVLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZSAoeWV0KS4gV2UncmUgdmVyeSBjbG9zZSwg
dGhvdWdoISEhIQorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUFkYXB0ZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBZGFwdGVyOjpSZW1vdGVBZGFwdGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQWRhcHRlcjo6flJlbW90ZUFkYXB0ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBZGFw
dGVyOjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVBZGFwdGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6UmVtb3RlQmluZEdyb3VwKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwOjp+UmVtb3RlQmluZEdyb3VwKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJp
bmRHcm91cExheW91dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmlu
ZEdyb3VwTGF5b3V0OjpSZW1vdGVCaW5kR3JvdXBMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVCaW5kR3JvdXBMYXlvdXQ6On5SZW1vdGVCaW5kR3JvdXBMYXlvdXQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVCaW5kR3JvdXBMYXlvdXQ6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5o
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExh
eW91dC5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcC4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQnVmZmVyOjpSZW1vdGVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVCdWZmZXI6On5SZW1vdGVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZm
ZXI6Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQnVmZmVyOjp1bm1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZlcjo6ZGVzdHJveSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUJ1ZmZlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZm
ZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVNYXBNb2RlLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRCdWZmZXI6
OlJlbW90ZUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kQnVm
ZmVyOjp+UmVtb3RlQ29tbWFuZEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1h
bmRCdWZmZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kQnVmZmVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6UmVt
b3RlQ29tbWFuZEVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rl
cjo6flJlbW90ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFu
ZEVuY29kZXI6OmJlZ2luUmVuZGVyUGFzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1h
bmRFbmNvZGVyOjpiZWdpbkNvbXB1dGVQYXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29t
bWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb1RleHR1cmUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpwdXNoRGVidWdHcm91cCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OndyaXRlVGltZXN0YW1wKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OnJlc29sdmVRdWVyeVNldCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpmaW5pc2gpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmg6IEFkZGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVD
b21wdXRlUGFzc0VuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyOjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6On5SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnNldFBpcGVsaW5l
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNwYXRjaCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZGlzcGF0Y2hJbmRp
cmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6YmVnaW5Q
aXBlbGluZVN0YXRpc3RpY3NRdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQ
YXNzRW5jb2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXApOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRMYWJlbCk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVy
Lmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNv
bXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVy
ZVByb3h5LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpSZW1v
dGVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGlwZWxp
bmU6On5SZW1vdGVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21w
dXRlUGlwZWxpbmU6OmdldEJpbmRHcm91cExheW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUNvbXB1dGVQaXBlbGluZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVE
ZXZpY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpSZW1vdGVE
ZXZpY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6On5SZW1vdGVEZXZpY2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURl
dmljZTo6Y3JlYXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3Jl
YXRlU2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6aW1wb3J0RXh0ZXJu
YWxUZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCaW5kR3Jv
dXBMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5l
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXAp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbW1hbmRFbmNvZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVRdWVyeVNldCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6cHVzaEVycm9yU2NvcGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEZXZpY2U6OnBvcEVycm9yU2NvcGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEZXZpY2U6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVEZXZpY2UuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4dGVybmFsVGV4dHVyZTo6UmVtb3RlRXh0ZXJuYWxU
ZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRXh0ZXJuYWxUZXh0dXJlOjp+UmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRXh0ZXJuYWxUZXh0dXJl
OjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjpSZW1vdGVHUFUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHUFU6On5SZW1vdGVHUFUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVHUFU6OnJlcXVlc3RBZGFwdGVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVHUFUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUdQVS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVBpcGVsaW5lTGF5b3V0OjpSZW1vdGVQaXBlbGluZUxh
eW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVBpcGVsaW5lTGF5b3V0Ojp+UmVtb3RlUGlw
ZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91dDo6c2V0
TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVs
aW5lTGF5b3V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXJ5U2V0OjpSZW1vdGVRdWVyeVNldCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXJ5U2V0Ojp+UmVtb3RlUXVlcnlTZXQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6ZGVzdHJveSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVF1ZXJ5U2V0OjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlUXVlcnlTZXQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpSZW1vdGVRdWV1ZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjp+UmVtb3RlUXVldWUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVl
dWU6Om9uU3VibWl0dGVkV29ya0RvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6
d3JpdGVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6d3JpdGVUZXh0dXJl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OmNvcHlFeHRlcm5hbEltYWdlVG9UZXh0
dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OnNldExhYmVsKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
QnVuZGxlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5k
bGU6OlJlbW90ZVJlbmRlckJ1bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1
bmRsZTo6flJlbW90ZVJlbmRlckJ1bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
ckJ1bmRsZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVJlbmRlckJ1bmRsZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNv
ZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29k
ZXI6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyOjp+UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldFBpcGVsaW5lKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0SW5kZXhCdWZmZXIpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZm
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kaXJl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5k
ZXhlZEluZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6c2V0QmluZEdyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5k
bGVFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpmaW5pc2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1l
c3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcjo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6flJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFBpcGVsaW5l
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldEluZGV4QnVm
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRl
eEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmRyYXdJbmRleGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmRyYXdJbmRpcmVj
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhl
ZEluZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNl
dEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpw
dXNoRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
Ojpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFz
c0VuY29kZXI6OnNldFZpZXdwb3J0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFz
c0VuY29kZXI6OnNldFNjaXNzb3JSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
UGFzc0VuY29kZXI6OnNldEJsZW5kQ29uc3RhbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlcjo6c2V0U3RlbmNpbFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZE9jY2x1c2lvblF1ZXJ5KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0
aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6
ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZXhlY3V0ZUJ1bmRsZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlcjo6ZW5kUGFzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
clBpcGVsaW5lLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVuZGVyUGlwZWxpbmU6OlJlbW90ZVJlbmRlclBpcGVsaW5lKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyUGlwZWxpbmU6On5SZW1vdGVSZW5kZXJQaXBlbGluZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQaXBlbGluZTo6c2V0TGFiZWwpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRl
eHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5k
ZXJQaXBlbGluZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2FtcGxlcjo6UmVtb3RlU2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZXI6On5SZW1vdGVTYW1wbGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxl
cjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVNhbXBsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNoYWRlck1vZHVsZTo6UmVtb3RlU2hh
ZGVyTW9kdWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2hhZGVyTW9kdWxlOjp+UmVtb3Rl
U2hhZGVyTW9kdWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2hhZGVyTW9kdWxlOjpjb21w
aWxhdGlvbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTaGFkZXJNb2R1bGU6OnNldExh
YmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJN
b2R1bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZVByb3h5LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6UmVtb3Rl
VGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6On5SZW1vdGVUZXh0dXJl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6Y3JlYXRlVmlldyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVUZXh0dXJlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlVGV4dHVyZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2Rl
LmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmVWaWV3OjpSZW1vdGVUZXh0dXJlVmll
dyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmVWaWV3Ojp+UmVtb3RlVGV4dHVyZVZp
ZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmlldzo6c2V0TGFiZWwpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3Lmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRl
eHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0
dXJlVmlldy5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6Ok9iamVjdEhlYXA6Ok9iamVjdEhlYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
Ok9iamVjdEhlYXA6On5PYmplY3RIZWFwKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmpl
Y3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFj
a2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJ1ZmZl
ckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252
ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpP
YmplY3RIZWFwOjpjb252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21C
YWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Q29t
cHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydEdQVUZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFF1ZXJ5U2V0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRRdWV1
ZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252
ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJQYXNzRW5jb2RlckZy
b21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0
UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydFNhbXBsZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZVZp
ZXdGcm9tQmFja2luZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVT2JqZWN0SGVhcC5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5Lmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICh0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKToK
KyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQmluZEdyb3VwRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJpbmRH
cm91cERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
QmluZEdyb3VwRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUJpbmRHcm91cEVudHJ5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3Vw
RW50cnk6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3Vw
RW50cnk6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5
b3V0RGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpCaW5kR3JvdXBMYXlvdXRFbnRyeTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXRFbnRyeTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
QmxlbmRDb21wb25lbnQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
QmxlbmRDb21wb25lbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVC
bGVuZFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmxlbmRTdGF0ZTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCbGVuZFN0YXRlOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZzo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6QnVmZmVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpCdWZmZXJEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNh
bnZhc0NvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6Q2FudmFzQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29sb3JEaWN0OjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbG9yRGljdDo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3RhdGU6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlw
dG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9y
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBp
bGF0aW9uTWVzc2FnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21waWxh
dGlvbk1lc3NhZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29t
cGlsYXRpb25NZXNzYWdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
Q29tcHV0ZVBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0
ZVBhc3NEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkNvbXB1dGVQYXNzRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3Rl
bmNpbFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGVwdGhTdGVuY2lsU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGVwdGhTdGVuY2lsU3Rh
dGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlw
dG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRv
ci5oLgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpFeHRlbnQzRERpY3Q6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0REaWN0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dDo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNj
cmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFs
VGV4dHVyZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVGcmFnbWVudFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RnJhZ21lbnRTdGF0
ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpGcmFnbWVudFN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVy
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZlcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUV4dGVybmFsSW1hZ2U6
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQ6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91
dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlRGF0YUxheW91dDo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZURhdGFMYXlvdXQ6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6T3JpZ2luMkREaWN0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6Ok9yaWdpbjJERGljdDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVU9yaWdpbjNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T3JpZ2luM0REaWN0Ojpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjNERGljdDo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T3V0T2ZNZW1vcnlFcnJv
cjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPdXRPZk1lbW9yeUVy
cm9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRv
ckJhc2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVE
ZXNjcmlwdG9yQmFzZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OlByaW1pdGl2ZVN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OlByaW1pdGl2ZVN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
UHJvZ3JhbW1hYmxlU3RhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpQcm9ncmFtbWFi
bGVTdGFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpQcm9ncmFt
bWFibGVTdGFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5
U2V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3Jp
cHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpRdWVyeVNldERl
c2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJC
dW5kbGVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxl
RGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvcjo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1l
bnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NDb2xv
ckF0dGFjaG1lbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50OjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVzY3JpcHRvcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVzY3JpcHRvcjo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0OjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NMYXlvdXQ6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpSZXF1ZXN0QWRhcHRlck9wdGlvbnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpTYW1wbGVyQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ0xheW91dDo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6U3RlbmNpbEZhY2VTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ6
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJl
cy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3Iu
aC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlczo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpUZXh0dXJlQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpUZXh0dXJlQmluZGluZ0xheW91dDo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0b3I6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oLgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlZhbGlkYXRpb25FcnJvcjo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpWZXJ0ZXhBdHRyaWJ1dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6VmVydGV4QnVmZmVyTGF5b3V0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVVZlcnRleFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4
U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4U3Rh
dGU6OmRlY29kZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6UmVtb3RlQWRhcHRlclByb3h5OjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlVGV4dHVyZVByb3h5OjpjcmVhdGVWaWV3KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW1vdGVUZXh0dXJlUHJveHk6OmNyZWF0ZVZpZXcg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlUHJveHkuaDoKKwogMjAyMS0xMS0xNiAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIFN0YXJ0IHByZXBhcmlu
ZyBmb3Igc2VyaWFsaXppbmcgY29tbWFuZHMgdG8gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwv
V2ViR1BVQWRhcHRlckltcGwuY3BwCmluZGV4IGM0ODA1ZGQ5ODYxMTk3ZWU5NWU1MzZmM2I1MGY1
N2RhNjQ2OWFhMTQuLjIzZjVjOWFjZjA5MWRkODdkMzM1MDkwMWY0NWVhMDU2ZjJmY2ExYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2Vi
R1BVQWRhcHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9p
ZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMgc3RhdHVzLCBX
R1BVRGV2aWNlIGRldmljZSwgY28KICAgICBhZGFwdGVyLT5yZXF1ZXN0RGV2aWNlQ2FsbGJhY2so
c3RhdHVzLCBkZXZpY2UsIG1lc3NhZ2UpOwogfQogCi12b2lkIEFkYXB0ZXJJbXBsOjpyZXF1ZXN0
RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8RGV2aWNlPik+JiYgY2FsbGJhY2spCit2b2lkIEFkYXB0ZXJJbXBsOjpyZXF1ZXN0
RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBSZWYgcHJvdGVjdGVkVGhp
cygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaAppbmRleCAzNDkyNGFjNjg5
Yjc5OWY2OWY0OGYxNmY0ZjAxNWVkOWM1NzAxNDA4Li5lODRlZDRhODViNmJjM2U0MjEzZDgzN2Q5
MThhN2MxNmRmOTgyYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oCkBAIC01OCw5
ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIgYmFja2luZygpIGNvbnN0IHsgcmV0
dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJl
cXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwotICAg
IHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpmdW5jdGlv
bjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNv
bnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OmZ1bmN0aW9uPHZvaWQoUmVmPERldmljZT4mJik+
JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4+
IG1fY2FsbGJhY2tzOworICAgIERlcXVlPFdURjo6ZnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYm
KT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV0dQVUFkYXB0ZXIgbV9iYWNraW5nIHsgbnVsbHB0ciB9
OwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4dD4gbV9jb252ZXJ0VG9CYWNraW5nQ29u
dGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQu
aAppbmRleCAzMWY0NTRiYmRkNDlhNzliYzM3ZmNiODcxMzk0NjU5Y2ZlZDBkOTJjLi4zYzliNWM3
YjRkNTgzZDJhNjcyOGJiZDcyNzNiNWJiMjYwYzYyZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUNvbnZlcnRUb0JhY2tpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1w
bC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKICNpbmNsdWRlICJXZWJHUFVUZXh0dXJlVXNhZ2Uu
aCIKICNpbmNsdWRlIDxXZWJHUFUvV2ViR1BVLmg+CisjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVU
ZXh0dXJlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1w
bC9XZWJHUFVUZXh0dXJlSW1wbC5oCmluZGV4IDJiMThmOWI2OGQyM2ZiYmIwZTM4MjkzYTFjOTVl
MGNmNTk3YTk2NmQuLjMzODNlYTEzNjk0Y2M5ZjA3OTQ1MzBlMDhiMGIyYzI0YTU2Y2Q4YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2Vi
R1BVVGV4dHVyZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToK
IAogICAgIFdHUFVUZXh0dXJlIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0K
IAotICAgIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFRl
eHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsKKyAgICBSZWY8VGV4dHVyZVZpZXc+
IGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0dXJlVmlld0Rlc2NyaXB0b3I+Jikg
ZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oCmluZGV4IGUy
ZDljNjFkMGVmY2Y1YTZmYzMzN2JkNmFjZDkxOWNlOTEyYmUwNzEuLjUwN2M0YWFjNDc2ZDgxYmUz
NTI5YTM4Yjg5MTY1NjE1ZTA4NjRkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRzKCkgY29uc3QgeyByZXR1cm4gbV9s
aW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gbV9p
c0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2UoY29u
c3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+JiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNjcmlw
dG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPiYmKSA9IDA7CiAKIHByb3Rl
Y3RlZDoKICAgICBBZGFwdGVyKFN0cmluZyYmIG5hbWUsIFN1cHBvcnRlZEZlYXR1cmVzJiBmZWF0
dXJlcywgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMsIGJvb2wgaXNGYWxsYmFja0FkYXB0ZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVB
ZGRyZXNzTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRkcmVzc01vZGUuaAppbmRleCA2N2JhZDViOWRmODk1NGE0MDRmOTcwZGZmOWU1MzBhZWFh
NTc3Y2QxLi40Y2FkZmE2NWRkNzAwY2MwYTFhNTlmYzRkMGJjMjkzMjU3ODI4ZGUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNz
TW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUFkZHJlc3NNb2RlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVtIGNsYXNzIEFkZHJlc3NNb2RlIDog
dWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6QWRkcmVz
c01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6Oldl
YkdQVTo6QWRkcmVzc01vZGUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZTo6Q2xh
bXBUb0VkZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZTo6UmVwZWF0LAorICAg
ICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJvclJlcGVhdAorICAgID47Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rvci5oCmluZGV4IGZlZDVlODFlNjgz
YTg1ODg1ODk5OTc0YjRhNmQ0OGI3NDFhODQ0ZDguLjIwMjJiODA3MmJiNzRkNzBiZjQ5Y2ViMWU5
YWY2OGE2Njk5ZTEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3IuaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTQ2LDMgKzQ3LDI2IEBAIGVu
dW0gY2xhc3MgQmxlbmRGYWN0b3IgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3RvciwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0
b3I6Ok9uZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpTcmMsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNTcmMsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGEsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3Rvcjo6T25lTWludXNTcmNBbHBoYSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9y
OjpEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNEc3QsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6RHN0QWxwaGEsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNEc3RBbHBoYSwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkJsZW5kRmFjdG9yOjpTcmNBbHBoYVNhdHVyYXRlZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkJsZW5kRmFjdG9yOjpDb25zdGFudCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9y
OjpPbmVNaW51c0NvbnN0YW50CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxl
bmRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUJsZW5kT3BlcmF0aW9uLmgKaW5kZXggMWY2MDBjOGRhYmNhYTc1NzAzMGQ1NzIxOTM4ZjQw
ZDY0MTFhZjIyMC4uODZhMGI5ZGQ5YzM2OGEzOTU0YmYyNzRmMWUxZDE5OTU2MTNlYTFmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxl
bmRPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFt
ZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBCbGVu
ZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUK
KworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpX
ZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQ
VTo6QmxlbmRPcGVyYXRpb246OkFkZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0
aW9uOjpTdWJ0cmFjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpSZXZl
cnNlU3VidHJhY3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZE9wZXJhdGlvbjo6TWluLAor
ICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246Ok1heAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oCmluZGV4IDBh
MGFkNjZiMDFkNDM2MGE5NzhhNzBhZTA4NTZjYTk1ZjkxN2UzZDcuLjQ0MWI3MjhkNmE0MjAyOTY5
ZTE3MDJhY2QzMjNhZDVkNzU3Zjg0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQnVmZmVyQmluZGluZ1R5cGUgOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5n
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpCdWZmZXJCaW5kaW5nVHlwZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRp
bmdUeXBlOjpVbmlmb3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ1R5cGU6
OlN0b3JhZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZTo6UmVhZE9u
bHlTdG9yYWdlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyVXNhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVz
YWdlLmgKaW5kZXggNTQwMTFmNDMzNzE1ZTRkYjE5ZTJiMGFhYjVlMjgxYzg3NzEwYjM1Mi4uZDU1
ZWNmYzQ2NWRjNTg4NjMzZDdjMmNlNDQ1NDE3OGU2MzhhNmEzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyVXNhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJVc2Fn
ZS5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiB1c2luZyBC
dWZmZXJVc2FnZUZsYWdzID0gdWludDMyX3Q7Ci0KIGNsYXNzIEJ1ZmZlclVzYWdlIDogcHVibGlj
IFJlZkNvdW50ZWQ8QnVmZmVyVXNhZ2U+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHBy
IEZsYWdzQ29uc3RhbnQgTUFQX1JFQUQgICAgICA9IDB4MDAwMTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5n
QWxwaGFNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCmluZGV4IDA5MWNhZGFiNDEyNDk3YzljOGQ0
N2YzMDU4YjQ1OGM0NjdhYWNiMDMuLjQ0ODQyZmMzOWY5ZGRmMzA5ZTgyOWMxMTI5YmY0YTBiMGRk
NGViYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUg
OiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpDYW52
YXNDb21wb3NpdGluZ0FscGhhTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlOjpPcGFxdWUsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZTo6UHJlbXVsdGlwbGll
ZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBhcmVGdW5jdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0
aW9uLmgKaW5kZXggNmNiZWEzZDU4NDY5NGIwNDQzZGU3YmQ0NWI2ODQ1YTcwYjQ5OTM1OC4uYjhl
NzQxYjdkYjAzNjU3NjI2YTI5ZDI3N2U5YjA0NWUxNGZiNzY5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFy
ZUZ1bmN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8
Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpX
ZWJHUFUgewogCkBAIC00MSwzICs0MiwyMSBAQCBlbnVtIGNsYXNzIENvbXBhcmVGdW5jdGlvbiA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNvbXBh
cmVGdW5jdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBB
TDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJl
RnVuY3Rpb246Ok5ldmVyLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpM
ZXNzLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpFcXVhbCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVzc0VxdWFsLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyLAorICAgICAgICBQQUw6OldlYkdQVTo6
Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVG
dW5jdGlvbjo6R3JlYXRlckVxdWFsLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0
aW9uOjpBbHdheXMKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlv
bk1lc3NhZ2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgKaW5kZXggYTQ2MzUyNDQxZWE3N2RkYTIyZGJj
ZjJjODIxMWU0YzkwZTkzYTQyOS4uM2EyZjA1MGIyNzQyMmIzNzI2YzQzZDNkZTkzM2JmNTFkY2Q0
ZWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMg
KzM3LDE2IEBAIGVudW0gY2xhc3MgQ29tcGlsYXRpb25NZXNzYWdlVHlwZSA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2Fn
ZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6Oldl
YkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBp
bGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRp
b25NZXNzYWdlVHlwZTo6V2FybmluZywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9u
TWVzc2FnZVR5cGU6OkluZm8KKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKaW5kZXggZjA4
MTllMDE0Y2Q5ZGRhYmFiZjBlM2JmYjZkM2ZkZGE3MDYwOGJiYy4uZWM3MTdiN2NiNWM0OTU2ZWQ2
ODMzMDBhNDE4ODM5MjdjMWFhNmU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQ
YXNzVGltZXN0YW1wTG9jYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgQ29tcHV0
ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24+IHsKKyAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBh
c3NUaW1lc3RhbXBMb2NhdGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGlt
ZXN0YW1wTG9jYXRpb246OkJlZ2lubmluZywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQ
YXNzVGltZXN0YW1wTG9jYXRpb246OkVuZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUN1bGxNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVDdWxsTW9kZS5oCmluZGV4IDhlNTI3N2JmZjliZjBlNTYxMjhkYWNkZGY5NjgxZDY3OWQ3
ZTQ5MzIuLjRjODdkMDc3MzkxYWNkNjE1ZDA2MWVmNTkwMWExMDVmNzBkODBkOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3Vs
bE1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3Rk
aW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQ3VsbE1vZGUgOiB1aW50OF90IHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpDdWxsTW9kZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDdWxsTW9k
ZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkN1bGxNb2RlOjpOb25lLAorICAgICAgICBQQUw6Oldl
YkdQVTo6Q3VsbE1vZGU6OkZyb250LAorICAgICAgICBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkJh
Y2sKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0
UmVhc29uLmgKaW5kZXggYWNkYmZmNmQ4OTQ5YTBlYzI5NmRjNWVjZjM3NTMyZTJlZmEwM2NmZC4u
YjQxZWM0MDQyNTJlNWMyOWZhNzE5N2U5ODlkYzg4MmQzNGM2YWEzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURl
dmljZUxvc3RSZWFzb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQ
QUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0gY2xhc3MgRGV2aWNlTG9zdFJl
YXNvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6
OkRldmljZUxvc3RSZWFzb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAg
ICAgICBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkRldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVFcnJvckZpbHRlci5oCmluZGV4IDgyNmJkYWI1YmMxZDlmODU1YTlmOTEyZDAy
YzllYzQ1NGVhOWRkNDAuLmVlZGQ4NzE0ZDQ4ZDE3M2M5MDU3NTM5YzI5OGExZmRmMDA2ODA2OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUVycm9yRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRXJyb3JGaWx0ZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgRXJyb3JG
aWx0ZXIgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BV
OjpFcnJvckZpbHRlcj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkVycm9yRmls
dGVyOjpPdXRPZk1lbW9yeSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyOjpWYWxp
ZGF0aW9uCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmVhdHVyZU5hbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1l
LmgKaW5kZXggMGQ1ODcwYmM4MDkxMGJjNTkzYWZhZmRjNDAzZDRlOTk4ZWI0OTFkMi4uNmEzMzU4
OWQ4OTQ5ZmE4NDc2YzE0ZGI3ZmQzNTg0OWFmZjczZjM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmVhdHVyZU5hbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGZWF0dXJlTmFtZS5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+Cisj
aW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApA
QCAtNDIsMyArNDMsMjIgQEAgZW51bSBjbGFzcyBGZWF0dXJlTmFtZSA6IHVpbnQ4X3QgewogfTsK
IAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVO
YW1lLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OkRlcHRoQ2xpcENvbnRyb2ws
CisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6RGVwdGgyNHVub3JtU3RlbmNpbDgs
CisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6RGVwdGgzMmZsb2F0U3RlbmNpbDgs
CisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6UGlwZWxpbmVTdGF0aXN0aWNzUXVl
cnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9u
QmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9u
RXRjMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpUZXh0dXJlQ29tcHJlc3Np
b25Bc3RjLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OlRpbWVzdGFtcFF1ZXJ5
LAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OkluZGlyZWN0Rmlyc3RJbnN0YW5j
ZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZpbHRlck1vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZpbHRlck1vZGUuaAppbmRl
eCA4YmM4ODEyMjA1Y2U4MmI1Yzg0Y2E3ZTRiNTUxMzJhNmFkMTY0OGU3Li4xYWZiM2ZhNWU1MTJm
ZWVlMDA5NmMxZTFhOWNhMjAxY2M5ZGEzY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmlsdGVyTW9kZS5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyAr
MzYsMTUgQEAgZW51bSBjbGFzcyBGaWx0ZXJNb2RlIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RmlsdGVyTW9kZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpGaWx0ZXJNb2RlLAorICAgICAg
ICBQQUw6OldlYkdQVTo6RmlsdGVyTW9kZTo6TmVhcmVzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkZpbHRlck1vZGU6OkxpbmVhcgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZy
b250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RnJvbnRGYWNlLmgKaW5kZXggN2MzYTA5NTZiM2Q1NTZlMWMzYzJlZjZiZDE5ZjEzYTlkOGU1OTBh
Ny4uZmY2NWIxMDA3ZWQzOTJhNjFjZDViMDM0YzA2MmMyYmU2MTI1MzdjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRG
YWNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGlu
dD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUg
ewogCkBAIC0zNSwzICszNiwxNSBAQCBlbnVtIGNsYXNzIEZyb250RmFjZSA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkZyb250RmFjZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpGcm9udEZh
Y2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGcm9udEZhY2U6OkNDVywKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkZyb250RmFjZTo6Q1cKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJ
bWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKaW5kZXggNjdhZmU4MTFlYjhk
ODhiYmMyYThiYjllZTQ1OGNiZDBkMTYwZWZjNC4uOTU1ZjA5N2RjZjAwZDQwMWQwMDk2MDc4MGZh
M2IyNjY4Y2U1ZjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2Uu
aApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIAogc3RydWN0IElt
YWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6dmFyaWFudDxSZWZQdHI8SW1hZ2VC
aXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBzb3VyY2U7CisgICAgLy8gRklYTUU6
IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9uYWw8T3JpZ2luMkQ+IG9yaWdpbjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVJbmRleEZvcm1hdC5oCmluZGV4IGU2ZDRiY2IzMjNjYWI1Yzc1YjczMGIwMjhj
MzU4M2M3ZmI2MGViYTYuLmFkOTU2ZTcyZGQ4Nzc3NDIxNWQ1Yjk4NjU3NGUxNmVlODZhMTAwZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUluZGV4Rm9ybWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgSW5kZXhG
b3JtYXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BV
OjpJbmRleEZvcm1hdD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkluZGV4Rm9y
bWF0OjpVaW50MTYsCisgICAgICAgIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdDo6VWludDMyCisg
ICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTG9hZE9wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAppbmRleCBkODFmODlmMDll
OWI2NmE3M2IxNjIxMTY5ZjQ2YWEyNDdlZWVlOTRjLi5kYzgyNjBkNzMzMGQ2OGQ4NDg1ZWE3Njlm
MmQwZWMwZWE1OTAxNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAK
IG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0gY2xhc3Mg
TG9hZE9wIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQ
VTo6TG9hZE9wPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkxvYWRPcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkxvYWRPcDo6TG9hZAorICAg
ID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaAppbmRleCA2Y2QxOWQ1Mzc2
ZWY3MWJkMzUxMDU1YjkyMTMzYmQzMWI2YjJlOWE4Li5mMTdmYzc3NjM1YmZmZWY3MjA2MTNjZTVj
MDNjZGIwMzA1OTE4YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUgewogCiB1c2luZyBNYXBNb2RlRmxhZ3MgPSB1aW50MzJfdDsKLQogY2xh
c3MgTWFwTW9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1hcE1vZGU+IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgUkVBRCAgPSAweDAwMDE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZVN0
YXRpc3RpY05hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCmluZGV4IDJlOGFlZWE5Mjk3YTczZWEyYThmY2Vl
NDFhNTc3MDgxOTAwNmQ5OTQuLmJmOTNmNjc5MDA0YWRjNjAzMDc1OWU1ZWMzOTM3OGFkZDVkOTRj
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzks
MTggQEAgZW51bSBjbGFzcyBQaXBlbGluZVN0YXRpc3RpY05hbWUgOiB1aW50OF90IHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6
UGlwZWxpbmVTdGF0aXN0aWNOYW1lLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0
aXN0aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9ucywKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6Q2xpcHBlckludm9jYXRpb25zLAorICAgICAgICBQQUw6
OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlwcGVyUHJpbWl0aXZlc091dCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6RnJhZ21lbnRTaGFkZXJJ
bnZvY2F0aW9ucywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6
Q29tcHV0ZVNoYWRlckludm9jYXRpb25zCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUG93ZXJQcmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAppbmRleCAxNjUzNWM2MWZiMTRiMmMwMmY2MDMy
ZGNkOWNjMjgwYzk0YTYxMjQwLi4zMDYwODk3Y2Y5ZWEzMmQ0NzJkYTg2Mjg2ZWE1Njg5ODI0NzBm
ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVQb3dlclByZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0g
Y2xhc3MgUG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQ
QUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXIsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZQorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oCmlu
ZGV4IDk0MzAwODA0MDAyYTZjMDJkMThlZTcxYzVhODMzMWM3MDBhZGZkNTcuLmZhN2QxZTFlZjVi
YzM4MmU1M2I3ZjdjZjI1MzZmMzRkZDI5ODUxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJlZGVmaW5l
ZENvbG9yU3BhY2UuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6
OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0gY2xhc3MgUHJlZGVmaW5lZENvbG9y
U3BhY2UgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BV
OjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdCCisgICAgPjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVRvcG9sb2d5LmgKaW5kZXggZTRkMGYy
YWUyMmJjNjQ1YzQwMzJhNjk1MWZhNDVkNzUzYTVhZTYwYy4uYjUwY2Y5MzA0YWIyZTE0MjQwZThh
NzQ4ZDRhMDY5NjNkNGQ2ZjZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVUb3BvbG9neS5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5j
bHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAt
MzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQcmltaXRpdmVUb3BvbG9neSA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9wb2xv
Z3k6OlBvaW50TGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5OjpM
aW5lTGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lU3Ry
aXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neTo6VHJpYW5nbGVMaXN0
LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlRyaWFuZ2xlU3RyaXAK
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oCmluZGV4IDA1
OTFmYjM1NDZhZmU2MzMwOWE3OTY3ZDVmOTA0MDlkODc3MWQ1NGUuLmNjMzBkNDg4M2ZmMmRlMDZl
ZDlkOGJjOGM5OTJjNWRiODFjNjNkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYg
QEAgZW51bSBjbGFzcyBRdWVyeVR5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlUeXBlLAorICAgICAgICBQQUw6Oldl
YkdQVTo6UXVlcnlUeXBlOjpPY2NsdXNpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpRdWVyeVR5
cGU6OlBpcGVsaW5lU3RhdGlzdGljcywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZTo6
VGltZXN0YW1wCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmgKaW5kZXgg
ZTE2ZTkzZGUxNjgyZTRiNTg5ZjIwYTk0ZWVhZDg2MzlmNjFhZmRmMC4uNmY4ZjhmODEwYjhkMDFh
MTI4YzZiZGVmY2RlMzJjZjVhNDA5MjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oIgogI2luY2x1ZGUgIldlYkdQ
VUltYWdlRGF0YUxheW91dC5oIgogI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKKyNp
bmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8b3B0aW9u
YWw+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVF
bmNvZGVyLmgKaW5kZXggNWExMGM1ZjIxNjZkMGM1OGI3NDI0NGZjY2RmODIwNWFjODY1NTZjZC4u
MmQ3NWZmY2U4YmI4MTA0NGM5MGZjMDU4MjdlZDA5YzYwYzFiNWYxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5j
b2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldlYkdQ
VUluZGV4Rm9ybWF0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgogI2luY2x1
ZGUgIldlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlIDxjc3RkaW50Pgog
I2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggMWU3NmJh
NzdiODQwYTEwN2Y2YzExNjEyZTgyNzNiZjMyM2VlNzMyZC4uNzM1MmVhMWRkOGI5NTNiMjVmNTgy
NDY2ZWFhNzc5NmVlNWRmMjJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29sb3IuaCIKICNpbmNsdWRlICJXZWJH
UFVJbmRleEZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKKyNpbmNs
dWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaAppbmRleCBhYjVmYTAxOTg5NmFkMDQ4ZDc1MjJkMDA5YTM3YjhjMTRk
MzNlZWQxLi4yMDM4NzY4ZjQzNTc2YjE3NjE4YjQyMzdiNzJkOWE5MzcwMjFmMWNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQ
YXNzVGltZXN0YW1wTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaApAQCAtMjYsNiAr
MjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0
Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2
LDE1IEBAIGVudW0gY2xhc3MgUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uIDogdWludDhfdCB7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVz
dGFtcExvY2F0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6QmVnaW5uaW5nLAorICAgICAgICBQ
QUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpFbmQKKyAgICA+OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ1R5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oCmlu
ZGV4IDE4Y2FkYzBlMDcwNjA3YTQ0MTUyMjIxN2QxMjFmYjViNDEwMmZmMDAuLmE0OTJjZTY2ZGY1
YTEzNGQwZTA4ZmEzNTQxODQ2ODJjMjczYzNmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5k
aW5nVHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBTYW1wbGVyQmluZGluZ1R5cGUg
OiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpTYW1w
bGVyQmluZGluZ1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAg
ICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6
U2FtcGxlckJpbmRpbmdUeXBlOjpGaWx0ZXJpbmcsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTYW1w
bGVyQmluZGluZ1R5cGU6Ok5vbkZpbHRlcmluZywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNhbXBs
ZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0ZW5jaWxPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaAppbmRleCA5MDY5YmI3ZWYyZDQyZGU2ZDc5
YmNiODFkYTNhNzE5NDQzMDJlNDQ5Li5iYTBjNmY1NmJlODk1ODk0ZWJhOWJlYjI0N2ZlOWU3MzA3
OTEzMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNDEsMyArNDIsMjEgQEAg
ZW51bSBjbGFzcyBTdGVuY2lsT3BlcmF0aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbj4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9u
LAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6S2VlcCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm8sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNp
bE9wZXJhdGlvbjo6SW52ZXJ0LAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlv
bjo6SW5jcmVtZW50Q2xhbXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9u
OjpEZWNyZW1lbnRDbGFtcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246
OkluY3JlbWVudFdyYXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpE
ZWNyZW1lbnRXcmFwCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRl
eHR1cmVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgKaW5kZXggNzJiNzY4MTVjZGVjYTA3NGY1Yjg0ZWE4
MjUwMDllMmM5ZDc1ZTgxNi4uZTQ3ZTdiOWY0YTkxMDdmNGY4ZjEyMTYzZjJlNzFhZjk2MjQxNjhk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzQsMyArMzUsMTQg
QEAgZW51bSBjbGFzcyBTdG9yYWdlVGV4dHVyZUFjY2VzcyA6IHVpbnQ4X3QgewogfTsKIAogfSAv
LyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nl
c3M6OldyaXRlT25seQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3Au
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3Au
aAppbmRleCA5NzBjYmZiZGQyZWYzNDViODkwOWJmYzVmYzY3NTYwMzc1ODkzZDIxLi45OTQ0ZDhi
YzIwMjkxY2RlODg1ZjI0YWI1YjJkOTgzNWY3ZDc0NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yZU9wLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmVPcC5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyAr
MzYsMTUgQEAgZW51bSBjbGFzcyBTdG9yZU9wIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RvcmVPcD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9yZU9wLAorICAgICAgICBQQUw6Oldl
YkdQVTo6U3RvcmVPcDo6U3RvcmUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9yZU9wOjpEaXNj
YXJkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oCmluZGV4IDA1
YzkyZWUwOGNiYmU3NDhjMGY2MWNlNTU3NTU0NGYzYjk4NDM2YjcuLmQ1MmVkMTJhODIxMjNkMDE3
NDdhNmY1NTc0Nzg4NTcyMDZhYTc1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgICAgICBzZXRMYWJlbEludGVybmFsKG1fbGFiZWwpOwogICAgIH0KIAotICAg
IHZpcnR1YWwgUmVmPFRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZjxUZXh0
dXJlVmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3Jp
cHRvcj4mKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpID0gMDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVy
ZUFzcGVjdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
VGV4dHVyZUFzcGVjdC5oCmluZGV4IDc5YmVhMGNkOGMxN2U5YzE4NjA0ZjQxMTVjZWMxZDhjYWQ4
YTViYmEuLjU2MThjZmViNzUxODlkZDNiNmNkNmNkMzg0ODkzYThhZDY1YWNkZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVB
c3BlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVUZXh0dXJlQXNwZWN0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVtIGNsYXNzIFRleHR1cmVBc3Bl
Y3QgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlQXNwZWN0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
QXNwZWN0OjpBbGwsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0OjpTdGVuY2ls
T25seSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q6OkRlcHRoT25seQorICAg
ID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24u
aAppbmRleCA0NzU0MTA3ZWU1YjM4MTljYzljODJmODQ3ZGU2YmM0Y2RlMGQxOWRmLi41M2EyZTc5
ZWNlN2IwNTJlOWE1ZGY0NjIxZDU0MDIzYjI5ZjM0NTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGltZW5zaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURp
bWVuc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBUZXh0dXJlRGltZW5zaW9uIDog
dWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6VGV4dHVy
ZURpbWVuc2lvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZURpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbjo6
XzJkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbjo6XzNkCisgICAgPjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5oCmluZGV4IDNj
OGFhNmM0ODUzYTg1NDAyODZlMzgwYjE5ZmNmMTYxN2ZhMzJkNWYuLjYyNTk0NjAwNWYwZTg2M2Fm
OTAzMjgxNjViMzg4OTEyZGQ3NTAyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRm9ybWF0LmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0xNTMs
MyArMTU0LDEwOCBAQCBlbnVtIGNsYXNzIFRleHR1cmVGb3JtYXQgOiB1aW50OF90IHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSOHVub3JtLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Ujhzbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OlI4c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIx
NnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSMTZzaW50LAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2ZmxvYXQsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzh1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OlJnOHNub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6Umc4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnOHNpbnQs
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSMzJ1aW50LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMyc2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6UmcxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzE2
c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMTZmbG9hdCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4dW5vcm0sCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpSZ2JhOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCZ3Jh
OHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmdyYTh1bm9ybVNS
R0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2I5ZTV1ZmxvYXQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2IxMGEydW5vcm0sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzExYjEwdWZsb2F0LAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpSZzMyc2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OlJnMzJmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEx
NnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMTZzaW50LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTE2ZmxvYXQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1aW50LAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTMyc2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OlJnYmEzMmZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0
aDE2dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDI0cGx1
cywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMjRwbHVzU3RlbmNp
bDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDMyZmxvYXQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2JhVW5vcm0sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2JhVW5vcm1TUkdCLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3JtLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0OjpCYzRSVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpCYzRSU25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzVSZ1Vu
b3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmM1UmdTbm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjNmhSZ2JVZmxvYXQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzZoUmdiRmxvYXQsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjh1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6RXRjMlJnYjhhMXVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkV0YzJSZ2JhOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6RXRjMlJnYmE4dW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6RWFjUjExdW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFYWNS
MTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkVhY1JnMTF1bm9y
bSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkVhY1JnMTFzbm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM0eDRVbm9ybSwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM0eDRVbm9ybVNSR0IsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5vcm0sCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4
dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkFzdGM2eDVVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpBc3RjNng2VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3Rj
Nng2VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4
NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NVVub3Jt
U1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM4eDZVbm9ybSwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM4eDZVbm9ybVNSR0IsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg4VW5vcm0sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg4VW5vcm1TUkdCLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1TUkdCLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg2VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6QXN0YzEweDhVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QXN0YzEweDEwVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpBc3RjMTB4MTBVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpBc3RjMTJ4MTBVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkFzdGMxMngxMFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkFzdGMxMngxMlVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0
YzEyeDEyVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RGVw
dGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpE
ZXB0aDMyZmxvYXRTdGVuY2lsOAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRl
eHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDM4ZGQzNGRkOTMyZDI0YWYxZGJlOWM0
MmRmMmU5ZDcwYmQ1ZDhiZDcuLjM0YTAxY2FiMjBhNTI1NGUwMGIzMzgyODhiY2EyNjA5NzQwM2Vi
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM4LDMgKzM5LDE4IEBAIGVu
dW0gY2xhc3MgVGV4dHVyZVNhbXBsZVR5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlw
ZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpGbG9hdCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpVbmZpbHRlcmFibGVGbG9hdCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpEZXB0aCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZVNhbXBsZVR5cGU6OlVpbnQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaAppbmRleCBiMzVjMDQwMjNmMWRj
NjhiMWFhZWVkODRlYjRiZTVjNWVmNTUzM2I5Li5kMzZlZTQ1YzhhODY1MGU0YTZhMTNiZTcyNDll
ZTMzOGIzZDAzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGltZW5zaW9uLmgKQEAg
LTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNs
dWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0z
OSwzICs0MCwxOSBAQCBlbnVtIGNsYXNzIFRleHR1cmVWaWV3RGltZW5zaW9uIDogdWludDhfdCB7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1l
bnNpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Vmlld0RpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1l
bnNpb246Ol8yZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uOjpf
MmRBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uOjpDdWJl
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246OkN1YmVBcnJheSwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uOjpfM2QKKyAgICA+Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5oCmluZGV4IDk0ZWFj
NDEzOGExNmU5ZWU2ZGRlMDA4NmExOGM3NjZiY2NjNDk3OWMuLjJhMDEzNTM0Y2NkMzExYWU4MTcw
Y2ViMjZiZGNkYTMyMGI1NjU5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNjMsMyArNjQs
NDMgQEAgZW51bSBjbGFzcyBWZXJ0ZXhGb3JtYXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0LAorICAg
ICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHgyLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4
Rm9ybWF0OjpTaW50OHgyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50
OHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVbm9ybTh4MiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm04eDQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHgyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4
Rm9ybWF0OjpTbm9ybTh4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWlu
dDE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQxNng0LAorICAg
ICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MTZ4MiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDE2eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0
ZXhGb3JtYXQ6OlVub3JtMTZ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6
VW5vcm0xNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTE2eDIs
CisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtMTZ4NCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNngyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0OjpGbG9hdDE2eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OkZsb2F0MzIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0
MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQzMngzLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDMyeDQsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRl
eEZvcm1hdDo6VWludDMyeDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVp
bnQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50MzJ4NCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRl
eEZvcm1hdDo6U2ludDMyeDMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNp
bnQzMng0CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4U3RlcE1vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0
ZXBNb2RlLmgKaW5kZXggNjRkMTJjOTgwODdlOGI1NDY4YzdkOTkzNDIwNDg3MTQ2MzQ5MzMxOS4u
NDFiMzA2OWNmMGJmMzQ5YzY3MWMxMWNkZjhiZDFlYmFmM2YzOWEwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4U3RlcE1vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0
ZXhTdGVwTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBWZXJ0ZXhTdGVwTW9kZSA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlZlcnRl
eFN0ZXBNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4U3Rl
cE1vZGU6OlZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlOjpJbnN0
YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAzZGY5OGEzNTBkOGQ0NzRjNTI3
ZDljMjQ5MTExYzRiZTUwZWJhZDQwLi43OTlhZDc1YjJhMWFiMjEwZDA4MWQ1OWZkNWI0YjAyZDhi
NmRhZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CkBAIC0yNCw2ICsyNCwyOCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0Lm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21w
dXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbgorJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmlu
CiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5h
bFRleHR1cmUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW4KKyQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1
ZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4KKyQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5t
ZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlVGV4dHVyZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggMWYyNjY2ODQwMGFmOTIxMmQwMGM3MWFlYTBiNTg1YTA3MDIz
Y2I5YS4uYTY1ZmMzNjE4NGNmZjhmNzc1MmQ2ODUyNzk4NjE1NGI2YWY4MDFjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xNTQsNiAr
MTU0LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQWRhcHRlck1l
c3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUFkYXB0ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXJNZXNzYWdlcy5oCkBAIC0xODUsNiArMTg4LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyTWVz
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRp
b1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNr
UHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJpbmRHcm91cE1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUJpbmRHcm91cE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUJpbmRHcm91cE1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCdWZmZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVCdWZmZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVCdWZmZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNS
ZXBsaWVzLmgKQEAgLTIwNiw5ICsyMTgsMzAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21t
YW5kQnVmZmVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kRW5jb2Rlck1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tbWFuZEVuY29kZXJNZXNzYWdlc1Jl
cGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVz
c2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbXB1dGVQaXBlbGluZU1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUNvbXB1dGVQaXBlbGluZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbXB1dGVQaXBlbGluZU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVE
ZXZpY2VNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZpY2VNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZpY2VNZXNzYWdlc1JlcGxpZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFsVGV4dHVyZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUV4dGVybmFsVGV4dHVyZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFsVGV4dHVyZU1lc3NhZ2VzUmVwbGllcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHUFVNZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVHUFVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVHUFVNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2Fn
ZXNSZXBsaWVzLmgKQEAgLTI4MiwxMiArMzE1LDMzIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlc1JlcGxp
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmpl
Y3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0
cnlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVQaXBlbGluZUxheW91
dE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVBpcGVsaW5lTGF5b3V0TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1ZXJ5U2V0TWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UXVlcnlTZXRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVRdWVyeVNldE1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVRdWV1ZU1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1
ZXVlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUXVldWVNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyTWVz
c2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVtb3Rl
Q29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
bmRlclBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXJNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQaXBlbGluZU1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
bmRlclBpcGVsaW5lTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyUGlwZWxpbmVNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXNSZXBsaWVzLmgKQEAgLTMwMCwxNSArMzU0LDI3IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVNhbXBsZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVyTWVzc2FnZXNSZXBsaWVzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVT
aGFkZXJNb2R1bGVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4
dHVyZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVRleHR1cmVNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVU
ZXh0dXJlVmlld01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVRleHR1cmVWaWV3TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNWY1ZjQ3MzA5NjNkYjY5
NTVlZTliNDA5MzEzZGNiMDQwZjNjOTY4OC4uZGRlNWM2M2ZlM2Y0YjMxNTI5N2RiNGI2ODQ4OWMy
OWRlNWJiYTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjQ3LDYgKzI0Nywy
OCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIgXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTCBc
CisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlciBcCisJR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUJ1ZmZlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29t
bWFuZEJ1ZmZlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVu
Y29kZXIgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5j
b2RlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UgXAorCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZSBcCisJR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVQaXBlbGluZUxheW91dCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVlcnlTZXQgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlIFwKKwlH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUgXAorCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIgXAorCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyIFwKKwlHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZSBcCisJR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlU2hhZGVyTW9kdWxlIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldyBc
CiAJR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkgXAogCUdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgXAogCUdQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUwNDA5YTljNDYxNGE1NDYyNGFmZGZhYWEwZTJmMTM5NWY0NzYzNTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUFkYXB0ZXIuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQWRhcHRlci5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIgorI2luY2x1
ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJl
cy5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0cy5oIgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcihQQUw6OldlYkdQVTo6QWRhcHRlciYgYWRhcHRl
ciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGFkYXB0
ZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQWRhcHRl
cjo6flJlbW90ZUFkYXB0ZXIoKQoreworfQorCit2b2lkIFJlbW90ZUFkYXB0ZXI6OnJlcXVlc3RE
ZXZpY2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJHUFU6
OlN1cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiYpPiYmIGNhbGxi
YWNrKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0o
aWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBIQVZFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MGYzN2U3ZTQ2NzA5OGExNzZmZTRjNDA3ODMxNDlhMGMxZDM3N2UxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVBZGFwdGVyLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKK2NsYXNzIEFkYXB0ZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgV2ViR1BVIHsKK3N0cnVjdCBEZXZpY2VEZXNjcmlwdG9yOworY2xhc3MgT2Jq
ZWN0SGVhcDsKK3N0cnVjdCBTdXBwb3J0ZWRGZWF0dXJlczsKK3N0cnVjdCBTdXBwb3J0ZWRMaW1p
dHM7Cit9CisKK2NsYXNzIFJlbW90ZUFkYXB0ZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQWRhcHRlcj4g
Y3JlYXRlKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBhZGFwdGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAm
IG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVB
ZGFwdGVyKGFkYXB0ZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1v
dGVBZGFwdGVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisK
KyAgICBSZW1vdGVBZGFwdGVyKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVBZGFwdGVyKGNvbnN0IFJlbW90ZUFkYXB0ZXImKSA9IGRlbGV0
ZTsKKyAgICBSZW1vdGVBZGFwdGVyKFJlbW90ZUFkYXB0ZXImJikgPSBkZWxldGU7CisgICAgUmVt
b3RlQWRhcHRlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUFkYXB0ZXImKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVBZGFwdGVyJiBvcGVyYXRvcj0oUmVtb3RlQWRhcHRlciYmKSA9IGRlbGV0ZTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0
aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCByZXF1ZXN0RGV2aWNl
KGNvbnN0IFdlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQ
VTo6U3VwcG9ydGVkTGltaXRzJiYpPiYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QWRhcHRl
cj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVBZGFwdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExMzNh
YTZlMWNjNmI1MzlhMDQ5ZTc0NTY1OTNlZjAzOGE4MzRjOGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUFkYXB0ZXIgTm90UmVmQ291bnRlZCBTdHJlYW0gewor
ICAgIHZvaWQgUmVxdWVzdERldmljZShXZWJLaXQ6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciBk
ZXZpY2VEZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4g
KFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyBzdXBwb3J0ZWRGZWF0dXJlcywgV2Vi
S2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyBzdXBwb3J0ZWRMaW1pdHMpIFN5bmNocm9ub3Vz
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MTBhNTQ1
OTVlNmI0YjQyMGFiMTA5MjgzM2Y3MThjNDkxMjMwYjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAK
QEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVCaW5kR3JvdXAuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUJpbmRHcm91cC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQmluZEdy
b3VwOjpSZW1vdGVCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkJpbmRHcm91cCYgYmluZEdyb3VwLCBX
ZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYmluZEdyb3Vw
KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUJpbmRHcm91
cDo6flJlbW90ZUJpbmRHcm91cCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQmluZEdyb3VwOjpzZXRM
YWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QmluZEdyb3VwLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUJpbmRHcm91cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZDEwZGY0MTUyOGFkMTIyYWFhMDNiZTc2YTc4
MDNhYmQ4YWI4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIu
aCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBCaW5kR3JvdXA7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9
CisKK2NsYXNzIFJlbW90ZUJpbmRHcm91cCBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3Nh
Z2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVCaW5kR3JvdXA+IGNy
ZWF0ZShQQUw6OldlYkdQVTo6QmluZEdyb3VwJiBiaW5kR3JvdXAsIFdlYkdQVTo6T2JqZWN0SGVh
cCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZUJpbmRHcm91cChiaW5kR3JvdXAsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IH5SZW1vdGVCaW5kR3JvdXAoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0
SGVhcDsKKworICAgIFJlbW90ZUJpbmRHcm91cChQQUw6OldlYkdQVTo6QmluZEdyb3VwJiwgV2Vi
R1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVCaW5kR3JvdXAoY29uc3QgUmVtb3RlQmlu
ZEdyb3VwJikgPSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwKFJlbW90ZUJpbmRHcm91cCYm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVC
aW5kR3JvdXAmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAmIG9wZXJhdG9yPShSZW1v
dGVCaW5kR3JvdXAmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNz
YWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BV
OjpCaW5kR3JvdXA+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29i
amVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2Q3Zjk0MWFkNjJjOTg1MDczZWFiZmQzM2M1NWNjMWRkZmMzZTZhNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVCaW5kR3JvdXAgTm90UmVm
Q291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzBm
MGUxMWU3NzQ5ZTk5OWYxNDE2NzFiMjVjODBjM2Q1ODY4Y2I5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBM
YXlvdXQuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlQmluZEdyb3VwTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1JlbW90ZUJpbmRHcm91cExheW91dDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0KFBB
TDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQmIGJpbmRHcm91cExheW91dCwgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGJpbmRHcm91cExheW91dCkKKyAg
ICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVCaW5kR3JvdXBMYXlv
dXQ6On5SZW1vdGVCaW5kR3JvdXBMYXlvdXQoKQoreworfQorCit2b2lkIFJlbW90ZUJpbmRHcm91
cExheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxh
YmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGZk
YWNhZWEyYTU0MzlkMWNiZTcxYzZhOGZiM2UxOWM4MTg1ODU1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBM
YXlvdXQuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUg
eworY2xhc3MgQmluZEdyb3VwTGF5b3V0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFt
ZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVCaW5k
R3JvdXBMYXlvdXQgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQmluZEdyb3VwTGF5b3V0PiBjcmVhdGUoUEFM
OjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYgYmluZEdyb3VwTGF5b3V0LCBXZWJHUFU6Ok9iamVj
dEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0LCBvYmplY3RIZWFwKSk7CisgICAg
fQorCisgICAgdmlydHVhbCB+UmVtb3RlQmluZEdyb3VwTGF5b3V0KCk7CisKK3ByaXZhdGU6Cisg
ICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQo
UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisg
ICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0KGNvbnN0IFJlbW90ZUJpbmRHcm91cExheW91dCYpID0g
ZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cExheW91dChSZW1vdGVCaW5kR3JvdXBMYXlvdXQm
JikgPSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0JiBvcGVyYXRvcj0oY29uc3Qg
UmVtb3RlQmluZEdyb3VwTGF5b3V0JikgPSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwTGF5
b3V0JiBvcGVyYXRvcj0oUmVtb3RlQmluZEdyb3VwTGF5b3V0JiYpID0gZGVsZXRlOworCisgICAg
dm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25C
YXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYm
KTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0PiBtX2JhY2tpbmc7Cisg
ICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cExheW91dC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3ZWNk
Mjk0NjQ5NDhiOWM5ODI1NjFlNzNmYzI4YmZlNTI2MzcwNjQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExh
eW91dC5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICog
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQmluZEdyb3VwTGF5b3V0IE5vdFJlZkNv
dW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUJ1ZmZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZjMjZlNGI1ODg5ZTA4MzEzZDZhN2I5
M2Y3ZWQxNjRkZjU2ZWE5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNwcApAQCAtMCwwICsxLDY4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUJ1ZmZlci5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVh
cC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQnVmZmVyOjpSZW1vdGVCdWZmZXIo
UEFMOjpXZWJHUFU6OkJ1ZmZlciYgYnVmZmVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhl
YXApCisgICAgOiBtX2JhY2tpbmcoYnVmZmVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhl
YXApCit7Cit9CisKK1JlbW90ZUJ1ZmZlcjo6flJlbW90ZUJ1ZmZlcigpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQnVmZmVyOjptYXBBc3luYyhQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzIG1hcE1vZGVG
bGFncywgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBvZmZzZXQsIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBVTlVTRURfUEFSQU0o
bWFwTW9kZUZsYWdzKTsKKyAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKKyAgICBVTlVTRURfUEFS
QU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZUJ1ZmZlcjo6dW5tYXAoVmVjdG9yPHVpbnQ4
X3Q+JiYgZGF0YSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7Cit9CisKK3ZvaWQgUmVtb3Rl
QnVmZmVyOjpkZXN0cm95KCkKK3sKK30KKwordm9pZCBSZW1vdGVCdWZmZXI6OnNldExhYmVsKFN0
cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTRhNDVhN2RkYWU3ZDQzMTg2NzU0MGRlMDkyODkyMjEwZDM0MTUyZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQnVmZmVyLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVNYXBNb2RlLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNz
IEJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgewor
Y2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlQnVmZmVyIGZpbmFsIDogcHVibGlj
IElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJl
bW90ZUJ1ZmZlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpCdWZmZXImIGJ1ZmZlciwgV2ViR1BVOjpP
YmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlQnVmZmVyKGJ1ZmZlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1
YWwgflJlbW90ZUJ1ZmZlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RI
ZWFwOworCisgICAgUmVtb3RlQnVmZmVyKFBBTDo6V2ViR1BVOjpCdWZmZXImLCBXZWJHUFU6Ok9i
amVjdEhlYXAmKTsKKworICAgIFJlbW90ZUJ1ZmZlcihjb25zdCBSZW1vdGVCdWZmZXImKSA9IGRl
bGV0ZTsKKyAgICBSZW1vdGVCdWZmZXIoUmVtb3RlQnVmZmVyJiYpID0gZGVsZXRlOworICAgIFJl
bW90ZUJ1ZmZlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUJ1ZmZlciYpID0gZGVsZXRlOworICAg
IFJlbW90ZUJ1ZmZlciYgb3BlcmF0b3I9KFJlbW90ZUJ1ZmZlciYmKSA9IGRlbGV0ZTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
QmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBtYXBBc3luYyhQQUw6Oldl
YkdQVTo6TWFwTW9kZUZsYWdzLCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9m
ZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplRm9yTWFwLCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsKKyAgICB2b2lk
IHVubWFwKFZlY3Rvcjx1aW50OF90PiYmKTsKKworICAgIHZvaWQgZGVzdHJveSgpOworCisgICAg
dm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4g
bV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2VmMTAyMThl
MjkyNDE5ZTVhYjczZWE5NGMwNzg5ODgyMGRmOGI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzMyBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
K21lc3NhZ2VzIC0+IFJlbW90ZUJ1ZmZlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9p
ZCBNYXBBc3luYyhQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzIG1hcE1vZGVGbGFncywgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemU2ND4gc2l6ZSkgLT4gKFZlY3Rvcjx1aW50OF90PiBkYXRhKSBTeW5jaHJvbm91
cworICAgIHZvaWQgVW5tYXAoVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpCisgICAgdm9pZCBEZXN0cm95
KCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1h
bmRCdWZmZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21tYW5kQnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGE5ZDU5MTNmZDNlOGMxZmVjNjk2
MWE1YWNmMjhhMDJkODIwYjM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcApAQCAtMCwwICsx
LDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZUNvbW1hbmRCdWZmZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbW1hbmRCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbW1hbmRC
dWZmZXI6OlJlbW90ZUNvbW1hbmRCdWZmZXIoUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXImIGNv
bW1hbmRCdWZmZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFj
a2luZyhjb21tYW5kQnVmZmVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9
CisKK1JlbW90ZUNvbW1hbmRCdWZmZXI6On5SZW1vdGVDb21tYW5kQnVmZmVyKCkKK3sKK30KKwor
dm9pZCBSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGE1NmZiYTZhOGMzNjNiNjYyMjU5ZTZiNmI1MDNkZTViY2E1NjAwNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQ29tbWFuZEJ1ZmZlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQ
QUw6OldlYkdQVSB7CitjbGFzcyBDb21tYW5kQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBS
ZW1vdGVDb21tYW5kQnVmZmVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2Vp
dmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUNvbW1hbmRCdWZmZXI+IGNyZWF0
ZShQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYgY29tbWFuZEJ1ZmZlciwgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVtb3RlQ29tbWFuZEJ1ZmZlcihjb21tYW5kQnVmZmVyLCBvYmplY3RIZWFwKSk7CisgICAgfQor
CisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZEJ1ZmZlcigpOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZlcihQQUw6Oldl
YkdQVTo6Q29tbWFuZEJ1ZmZlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3Rl
Q29tbWFuZEJ1ZmZlcihjb25zdCBSZW1vdGVDb21tYW5kQnVmZmVyJikgPSBkZWxldGU7CisgICAg
UmVtb3RlQ29tbWFuZEJ1ZmZlcihSZW1vdGVDb21tYW5kQnVmZmVyJiYpID0gZGVsZXRlOworICAg
IFJlbW90ZUNvbW1hbmRCdWZmZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21tYW5kQnVmZmVy
JikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZlciYgb3BlcmF0b3I9KFJlbW90ZUNv
bW1hbmRCdWZmZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNz
YWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BV
OjpDb21tYW5kQnVmZmVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4g
bV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI4Y2UxYmU3NjliMDU2ZGU3NjAzZGIwMDY3MDQ0MjE4NTQx
N2RjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBA
CisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3Rl
Q29tbWFuZEJ1ZmZlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChT
dHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNWI0MzY0N2Q4NmQwOTdmMWZhNjAxNTcyMWVjN2NkOTY1YTYxZTMxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kRW5jb2Rlci5jcHAKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZEVuY29kZXIuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVDb21tYW5kRW5jb2Rlcjo6UmVtb3RlQ29t
bWFuZEVuY29kZXIoUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyJiBjb21tYW5kRW5jb2Rlciwg
V2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGNvbW1hbmRF
bmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUNv
bW1hbmRFbmNvZGVyOjp+UmVtb3RlQ29tbWFuZEVuY29kZXIoKQoreworfQorCit2b2lkIFJlbW90
ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MoY29uc3QgV2ViR1BVOjpSZW5kZXJQYXNz
RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OmJlZ2luQ29tcHV0ZVBhc3MoY29u
c3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcj4mIGRlc2NyaXB0
b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVz
Y3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90
ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIoCisgICAgV2ViR1BVSWRlbnRpZmll
ciBzb3VyY2UsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzb3VyY2VPZmZzZXQsCisgICAgV2Vi
R1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3Rp
bmF0aW9uT2Zmc2V0LAorICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKK3sKKyAgICBVTlVT
RURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0oc291cmNlT2Zmc2V0KTsKKyAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbk9m
ZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRF
bmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5
QnVmZmVyJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0
aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSkKK3sKKyAgICBV
TlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAg
IFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6
OmNvcHlUZXh0dXJlVG9CdWZmZXIoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJl
JiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9u
LAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAgIFVOVVNFRF9Q
QVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VE
X1BBUkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weVRl
eHR1cmVUb1RleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBzb3Vy
Y2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAg
ICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0o
c291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJB
TShjb3B5U2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OmZpbGxCdWZmZXIo
CisgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAgICBQQUw6OldlYkdQVTo6U2l6
ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LAorICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKK3sK
KyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5h
dGlvbk9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZUNv
bW1hbmRFbmNvZGVyOjpwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKQoreworICAg
IFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rl
cjo6cG9wRGVidWdHcm91cCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6Omlu
c2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9QQVJB
TShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OndyaXRlVGlt
ZXN0YW1wKFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVl
cnlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlTZXQpOworICAgIFVOVVNFRF9QQVJB
TShxdWVyeUluZGV4KTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cmVzb2x2ZVF1
ZXJ5U2V0KAorICAgIFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQsCisgICAgUEFMOjpXZWJHUFU6
OlNpemUzMiBmaXJzdFF1ZXJ5LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlDb3VudCwK
KyAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgZGVzdGluYXRpb25PZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAg
ICBVTlVTRURfUEFSQU0oZmlyc3RRdWVyeSk7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5Q291bnQp
OworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3Rp
bmF0aW9uT2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmluaXNoKGNv
bnN0IFdlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7Cisg
ICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNv
ZGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQ29tbWFuZEVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjYwZTRiMTM4
NmEyZTNlMGNkZDU5Yjc2YmYyZjhmNjY0ZWIzODA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5o
CkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNp
bmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBDb21tYW5kRW5jb2RlcjsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworc3RydWN0IENvbW1hbmRCdWZmZXJE
ZXNjcmlwdG9yOworc3RydWN0IENvbXB1dGVQYXNzRGVzY3JpcHRvcjsKK3N0cnVjdCBJbWFnZUNv
cHlCdWZmZXI7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZTsKK2NsYXNzIE9iamVjdEhlYXA7Citz
dHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRFbmNv
ZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFJlbW90ZUNvbW1hbmRFbmNvZGVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6
OkNvbW1hbmRFbmNvZGVyJiBjb21tYW5kRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmpl
Y3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQ29tbWFu
ZEVuY29kZXIoY29tbWFuZEVuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIH5SZW1vdGVDb21tYW5kRW5jb2RlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFz
cyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQ29tbWFuZEVuY29kZXIoUEFMOjpXZWJHUFU6OkNv
bW1hbmRFbmNvZGVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVDb21tYW5k
RW5jb2Rlcihjb25zdCBSZW1vdGVDb21tYW5kRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90
ZUNvbW1hbmRFbmNvZGVyKFJlbW90ZUNvbW1hbmRFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJl
bW90ZUNvbW1hbmRFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQ29tbWFuZEVuY29kZXIm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21tYW5kRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZUNv
bW1hbmRFbmNvZGVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVz
c2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICB2b2lkIGJlZ2luUmVuZGVyUGFzcyhjb25zdCBXZWJHUFU6OlJlbmRlclBhc3NE
ZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBiZWdpbkNvbXB1dGVQYXNz
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I+JiwgV2Vi
R1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNvcHlCdWZmZXJUb0J1ZmZlcigKKyAgICAgICAg
V2ViR1BVSWRlbnRpZmllciBzb3VyY2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgc291
cmNlT2Zmc2V0LAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LAorICAgICAgICBQQUw6Oldl
YkdQVTo6U2l6ZTY0KTsKKworICAgIHZvaWQgY29weUJ1ZmZlclRvVGV4dHVyZSgKKyAgICAgICAg
Y29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIHNvdXJjZSwKKyAgICAgICAgY29uc3QgV2Vi
R1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICAgICAgY29uc3QgV2ViR1BV
OjpFeHRlbnQzRCYgY29weVNpemUpOworCisgICAgdm9pZCBjb3B5VGV4dHVyZVRvQnVmZmVyKAor
ICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIHNvdXJjZSwKKyAgICAgICAg
Y29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25z
dCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGNvcHlUZXh0dXJlVG9U
ZXh0dXJlKAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIHNvdXJjZSwK
KyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAg
ICAgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpOworCisgICAgdm9pZCBmaWxs
QnVmZmVyKAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LAorICAgICAgICBQQUw6OldlYkdQ
VTo6U2l6ZTY0KTsKKworICAgIHZvaWQgcHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJl
bCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtl
cihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lkIHdyaXRlVGltZXN0YW1wKFdlYkdQ
VUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCk7CisKKyAgICB2b2lk
IHJlc29sdmVRdWVyeVNldCgKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlNpemUzMiBmaXJzdFF1ZXJ5LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMy
IHF1ZXJ5Q291bnQsCisgICAgICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQpOworCisgICAgdm9pZCBm
aW5pc2goY29uc3QgV2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50
aWZpZXIpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpX
ZWJHUFU6OkNvbW1hbmRFbmNvZGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0
SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5j
b2Rlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzBiZjMzMTE0OGQyZTk1MzFjNTk3Y2I5Y2Rk
ZDYxNzNiN2QyOWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
ICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMg
LT4gUmVtb3RlQ29tbWFuZEVuY29kZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQg
QmVnaW5SZW5kZXJQYXNzKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVzY3JpcHRvciBkZXNj
cmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIEJl
Z2luQ29tcHV0ZVBhc3Moc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBhc3NE
ZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmll
cikKKyAgICB2b2lkIENvcHlCdWZmZXJUb0J1ZmZlcihXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIg
c291cmNlLCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNvdXJjZU9mZnNldCwgV2ViS2l0OjpXZWJHUFVJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zm
c2V0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemUpCisgICAgdm9pZCBDb3B5QnVmZmVyVG9UZXh0
dXJlKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXIgc291cmNlLCBXZWJLaXQ6OldlYkdQ
VTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNE
IGNvcHlTaXplKQorICAgIHZvaWQgQ29weVRleHR1cmVUb0J1ZmZlcihXZWJLaXQ6OldlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZSBzb3VyY2UsIFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXIg
ZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICB2b2lk
IENvcHlUZXh0dXJlVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlIHNv
dXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUgZGVzdGluYXRpb24sIFdlYktp
dDo6V2ViR1BVOjpFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICB2b2lkIEZpbGxCdWZmZXIoV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3Rp
bmF0aW9uT2Zmc2V0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemUpCisgICAgdm9pZCBQdXNoRGVi
dWdHcm91cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAg
IHZvaWQgSW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZvaWQgV3Jp
dGVUaW1lc3RhbXAoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2Vi
R1BVOjpTaXplMzIgcXVlcnlJbmRleCkKKyAgICB2b2lkIFJlc29sdmVRdWVyeVNldChXZWJLaXQ6
OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFF1
ZXJ5LCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5Q291bnQsIFdlYktpdDo6V2ViR1BVSWRlbnRp
ZmllciBkZXN0aW5hdGlvbiwgUEFMOjpXZWJHUFU6OlNpemU2NCBkZXN0aW5hdGlvbk9mZnNldCkK
KyAgICB2b2lkIEZpbmlzaChXZWJLaXQ6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3Ig
ZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9p
ZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVD
b21wdXRlUGFzc0VuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzNTBhOWY2ZGYwMGY0NWMxYzIxNTlm
YzYxYjM3YzdiZTIxZWY5MDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAKQEAgLTAs
MCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyKFBBTDo6
V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXImIGNvbXB1dGVQYXNzRW5jb2RlciwgV2ViR1BVOjpP
YmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGNvbXB1dGVQYXNzRW5jb2Rl
cikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVDb21wdXRl
UGFzc0VuY29kZXI6On5SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoKQoreworfQorCit2b2lkIFJl
bW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoV2ViR1BVSWRlbnRpZmllciBjb21w
dXRlUGlwZWxpbmUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbXB1dGVQaXBlbGluZSk7Cit9CisK
K3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNwYXRjaChQQUw6OldlYkdQVTo6U2l6
ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4geSwgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB6KQoreworICAgIFVOVVNFRF9QQVJBTSh4KTsKKyAgICBV
TlVTRURfUEFSQU0oeSk7CisgICAgVU5VU0VEX1BBUkFNKHopOworfQorCit2b2lkIFJlbW90ZUNv
bXB1dGVQYXNzRW5jb2Rlcjo6ZGlzcGF0Y2hJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGly
ZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQoreworICAgIFVO
VVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zm
c2V0KTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldCwgUEFMOjpXZWJHUFU6OlNp
emUzMiBxdWVyeUluZGV4KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeVNldCk7CisgICAgVU5V
U0VEX1BBUkFNKHF1ZXJ5SW5kZXgpOworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQoreworfQorCit2b2lkIFJlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyOjpzZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgsIFdlYkdQVUlk
ZW50aWZpZXIgYmluZEdyb3VwLAorICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BV
OjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBvZmZzZXRzKQoreworICAgIFVOVVNFRF9QQVJBTShp
bmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGJpbmRHcm91cCk7CisgICAgVU5VU0VEX1BBUkFNKG9m
ZnNldHMpOworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3Jv
dXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oZ3JvdXBMYWJlbCk7
Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sK
K30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0
cmluZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9
CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJl
bCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3YWZiZDhlOWM1NGVmNjI0NzFmZDA4NGQzMTI2
ZjgxZjEyOGVjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oCkBAIC0wLDAgKzEsOTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFs
VHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBDb21wdXRlUGFzc0VuY29k
ZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNz
IE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciBmaW5hbCA6
IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6Q29tcHV0
ZVBhc3NFbmNvZGVyJiBjb21wdXRlUGFzc0VuY29kZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2Jq
ZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlcihjb21wdXRlUGFzc0VuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIH5SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoKTsKKworcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cihQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7
CisKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoY29uc3QgUmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyKFJlbW90ZUNv
bXB1dGVQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXImKSA9IGRlbGV0ZTsK
KyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXImIG9wZXJhdG9yPShSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdl
KElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
KworICAgIHZvaWQgc2V0UGlwZWxpbmUoV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBkaXNw
YXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNp
emUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPik7CisgICAgdm9pZCBk
aXNwYXRjaEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2Vi
R1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpOworCisgICAgdm9pZCBiZWdpblBpcGVsaW5lU3Rh
dGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJ
bmRleCk7CisgICAgdm9pZCBlbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpOworCisgICAgdm9p
ZCBlbmRQYXNzKCk7CisKKyAgICB2b2lkIHNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgz
MiwgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpX
ZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmKTsKKworICAgIHZvaWQgcHVzaERlYnVnR3Jv
dXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAg
dm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lk
IHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NF
bmNvZGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RI
ZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YmQyYjU3MmNiYTU0MTFhMjNjMjljOTdkMDdjYzZjMGMw
ZWMyZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsx
LDQwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICog
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4g
UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IFNldFBpcGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZv
aWQgRGlzcGF0Y2goUEFMOjpXZWJHUFU6OlNpemUzMiB4LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaXplMzI+IHksIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4geikKKyAg
ICB2b2lkIERpc3BhdGNoSW5kaXJlY3QoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0
QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgQmVn
aW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgRW5kUGlwZWxp
bmVTdGF0aXN0aWNzUXVlcnkoKQorICAgIHZvaWQgRW5kUGFzcygpCisgICAgdm9pZCBTZXRCaW5k
R3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHlu
YW1pY09mZnNldD4+IGR5bmFtaWNPZmZzZXRzKQorICAgIHZvaWQgUHVzaERlYnVnR3JvdXAoU3Ry
aW5nIGdyb3VwTGFiZWwpCisgICAgdm9pZCBQb3BEZWJ1Z0dyb3VwKCkKKyAgICB2b2lkIEluc2Vy
dERlYnVnTWFya2VyKFN0cmluZyBtYXJrZXJMYWJlbCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmlu
ZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWI5ZDkwOTQ4MTkyYzRiZjAwMzQxY2Y4YmU2OGY0NmZkZTRjZmRhYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUNvbXB1dGVQaXBlbGluZS5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVDb21wdXRlUGlwZWxpbmU6OlJlbW90ZUNv
bXB1dGVQaXBlbGluZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lJiBjb21wdXRlUGlwZWxp
bmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhjb21w
dXRlUGlwZWxpbmUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVt
b3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKCkKK3sKK30KKwordm9p
ZCBSZW1vdGVDb21wdXRlUGlwZWxpbmU6OmdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRl
eCwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShpbmRl
eCk7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZUNvbXB1
dGVQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFN
KGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
YjM0MDQzZDc0OGZiZjdlZjZiZWEyYjMyZDUwOWU2ZjBjZjJiMDIzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRl
UGlwZWxpbmUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJH
UFUgeworY2xhc3MgQ29tcHV0ZVBpcGVsaW5lOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
bmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVD
b21wdXRlUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGUo
UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYgY29tcHV0ZVBpcGVsaW5lLCBXZWJHUFU6Ok9i
amVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdGVDb21wdXRlUGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lLCBvYmplY3RIZWFwKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKCk7CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxp
bmUoUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOwor
CisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFJlbW90ZUNvbXB1dGVQaXBlbGluZSYp
ID0gZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQaXBlbGluZShSZW1vdGVDb21wdXRlUGlwZWxp
bmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJiBvcGVyYXRvcj0oY29u
c3QgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBp
cGVsaW5lJiBvcGVyYXRvcj0oUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGdldEJpbmRHcm91cExh
eW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNldExh
YmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiBt
X2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ0NTlhYTU5MjM0MjkzODFkMzc2MGY1MmZiNmUzYzQ4N2JiYWM2ZTMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICog
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQ29tcHV0ZVBpcGVs
aW5lIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIEdldEJpbmRHcm91cExheW91dCh1
aW50MzJfdCBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc4ZDBlMWRjY2ZlN2VkNzc3Mjc2NDE1NTY0NWIxMjA5NWZlNmU4MGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZURldmljZS5jcHAKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRGV2aWNlLmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlbW90ZURldmljZTo6UmVtb3RlRGV2aWNlKFBBTDo6V2ViR1BVOjpEZXZpY2UmIGRldmljZSwg
V2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGRldmljZSkK
KyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVEZXZpY2U6On5S
ZW1vdGVEZXZpY2UoKQoreworfQorCit2b2lkIFJlbW90ZURldmljZTo6ZGVzdHJveSgpCit7Cit9
CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIoY29uc3QgV2ViR1BVOjpCdWZmZXJE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVy
KTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUoY29uc3QgV2ViR1BVOjpU
ZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRl
bnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IFdl
YkdQVTo6U2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BB
UkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6aW1wb3J0RXh0ZXJuYWxU
ZXh0dXJlKGNvbnN0IFdlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
RGV2aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgV2ViR1BVOjpCaW5kR3JvdXBMYXlv
dXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KGNvbnN0
IFdlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAg
IFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0
ZUJpbmRHcm91cChjb25zdCBXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3Jp
cHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURl
dmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVO
VVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2ViR1BV
OjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNF
RF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVJlbmRl
clBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1v
dGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6Q29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBV
TlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOwor
ICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVh
dGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFN
KGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbW1hbmRFbmNvZGVy
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I+JiBk
ZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BB
UkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9p
ZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVJlbmRlckJ1bmRsZUVuY29kZXIoY29uc3QgV2ViR1BVOjpS
ZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVT
RURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVRdWVy
eVNldChjb25zdCBXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpw
dXNoRXJyb3JTY29wZShQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXIgZXJyb3JGaWx0ZXIpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGVycm9yRmlsdGVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OnBv
cEVycm9yU2NvcGUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2Vi
R1BVOjpFcnJvcj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNr
KTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQorewor
ICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVh
MjBhNzNiYmJlNWQwNzYzODFmODcxZGYyNjJmMmQxODQ1YzgzYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmgK
QEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUVycm9yLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaD4KKyNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFz
cyBEZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsK
K3N0cnVjdCBCaW5kR3JvdXBEZXNjcmlwdG9yOworc3RydWN0IEJpbmRHcm91cExheW91dERlc2Ny
aXB0b3I7CitzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvcjsKK3N0cnVjdCBDb21tYW5kRW5jb2RlckRl
c2NyaXB0b3I7CitzdHJ1Y3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcjsKK3N0cnVjdCBFeHRl
cm5hbFRleHR1cmVEZXNjcmlwdG9yOworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBQaXBlbGlu
ZUxheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgUXVlcnlTZXREZXNjcmlwdG9yOworc3RydWN0IFJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yOworc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvcjsKK3N0cnVjdCBTYW1wbGVyRGVzY3JpcHRvcjsKK3N0cnVjdCBTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yOworc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yOworfQorCitjbGFzcyBSZW1vdGVEZXZp
Y2UgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVtb3RlRGV2aWNlPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkRldmljZSYg
ZGV2aWNlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVEZXZpY2UoZGV2aWNlLCBvYmplY3RIZWFwKSk7Cisg
ICAgfQorCisgICAgflJlbW90ZURldmljZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFz
cyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlRGV2aWNlKFBBTDo6V2ViR1BVOjpEZXZpY2UmLCBX
ZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZURldmljZShjb25zdCBSZW1vdGVEZXZp
Y2UmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVEZXZpY2UoUmVtb3RlRGV2aWNlJiYpID0gZGVsZXRl
OworICAgIFJlbW90ZURldmljZSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZURldmljZSYpID0gZGVs
ZXRlOworICAgIFJlbW90ZURldmljZSYgb3BlcmF0b3I9KFJlbW90ZURldmljZSYmKSA9IGRlbGV0
ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBkZXN0cm95
KCk7CisKKyAgICB2b2lkIGNyZWF0ZUJ1ZmZlcihjb25zdCBXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0
b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVRleHR1cmUoY29uc3QgV2Vi
R1BVOjpUZXh0dXJlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3Jl
YXRlU2FtcGxlcihjb25zdCBXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRp
Zmllcik7CisgICAgdm9pZCBpbXBvcnRFeHRlcm5hbFRleHR1cmUoY29uc3QgV2ViR1BVOjpFeHRl
cm5hbFRleHR1cmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNy
ZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0
b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVBpcGVsaW5lTGF5b3V0KGNv
bnN0IFdlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7
CisgICAgdm9pZCBjcmVhdGVCaW5kR3JvdXAoY29uc3QgV2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlw
dG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNyZWF0ZVNoYWRlck1vZHVsZShj
b25zdCBXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFU6OkNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVJlbmRl
clBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgV2ViR1BV
SWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhjb25zdCBX
ZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyLCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjcmVhdGVSZW5kZXJQaXBl
bGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgV2ViR1BV
SWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworCisgICAgdm9p
ZCBjcmVhdGVDb21tYW5kRW5jb2Rlcihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQVTo6Q29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yPiYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRl
UmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNyZWF0ZVF1ZXJ5U2V0KGNv
bnN0IFdlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAg
ICB2b2lkIHB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcik7CisgICAgdm9p
ZCBwb3BFcnJvclNjb3BlKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PFdlYkdQVTo6RXJyb3I+JiYpPiYmKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwor
CisgICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BV
OjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQwN2VjZjI3MjllZDUzODcxMmVmNzgxMjQ2MTQwYjU1NWFl
Y2E2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDggQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVEZXZpY2Ug
Tm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgRGVzdHJveSgpCisgICAgdm9pZCBDcmVh
dGVCdWZmZXIoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2Vi
S2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVUZXh0dXJl
KFdlYktpdDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVNhbXBsZXIoV2ViS2l0
OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgSW1wb3J0RXh0ZXJuYWxUZXh0dXJlKFdlYktp
dDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlQmluZEdyb3VwTGF5
b3V0KFdlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3Is
IFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlUGlw
ZWxpbmVMYXlvdXQoV2ViS2l0OjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBkZXNj
cmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENy
ZWF0ZUJpbmRHcm91cChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwRGVzY3JpcHRvciBkZXNjcmlw
dG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0
ZVNoYWRlck1vZHVsZShXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvciBkZXNj
cmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENy
ZWF0ZUNvbXB1dGVQaXBlbGluZShXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICB2b2lkIENyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisgICAgdm9pZCBDcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhXZWJLaXQ6OldlYkdQVTo6
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3luY2hyb25vdXMKKyAgICB2b2lkIENyZWF0ZVJlbmRl
clBpcGVsaW5lQXN5bmMoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciBk
ZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3lu
Y2hyb25vdXMKKyAgICB2b2lkIENyZWF0ZUNvbW1hbmRFbmNvZGVyKHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4gZGVzY3JpcHRvciwgV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVSZW5kZXJCdW5k
bGVFbmNvZGVyKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciBk
ZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lk
IENyZWF0ZVF1ZXJ5U2V0KFdlYktpdDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3IgZGVzY3Jp
cHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBQdXNo
RXJyb3JTY29wZShQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXIgZXJyb3JGaWx0ZXIpCisgICAgdm9p
ZCBQb3BFcnJvclNjb3BlKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJHUFU6OkVycm9y
PiBlcnJvcikgU3luY2hyb25vdXMKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjhiYzRkOTdiNWYwYjg3ZmU5MTZiZDcwNTNjZDQzZDg0NTdhNjk3YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJu
YWxUZXh0dXJlLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUV4dGVybmFsVGV4dHVyZS5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitSZW1vdGVFeHRlcm5hbFRleHR1cmU6OlJlbW90ZUV4dGVybmFsVGV4dHVy
ZShQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlJiBleHRlcm5hbFRleHR1cmUsIFdlYkdQVTo6
T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhleHRlcm5hbFRleHR1cmUp
CisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlRXh0ZXJuYWxU
ZXh0dXJlOjp+UmVtb3RlRXh0ZXJuYWxUZXh0dXJlKCkKK3sKK30KKwordm9pZCBSZW1vdGVFeHRl
cm5hbFRleHR1cmU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJB
TShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGZjZGUzZDc4ZGQyM2Q1ZGQ4MDNlZTUzY2I2OTQ0YzhmOGE4NWMzZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJu
YWxUZXh0dXJlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKK2NsYXNzIEV4dGVybmFsVGV4dHVyZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUV4dGVybmFsVGV4dHVyZT4gY3JlYXRl
KFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmIGV4dGVybmFsVGV4dHVyZSwgV2ViR1BVOjpP
YmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKGV4dGVybmFsVGV4dHVyZSwgb2JqZWN0SGVhcCkpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUV4dGVybmFsVGV4dHVyZSgpOworCitwcml2YXRl
OgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0
dXJlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsK
KworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZShjb25zdCBSZW1vdGVFeHRlcm5hbFRleHR1cmUm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVFeHRlcm5hbFRleHR1cmUoUmVtb3RlRXh0ZXJuYWxUZXh0
dXJlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZSYgb3BlcmF0b3I9KGNv
bnN0IFJlbW90ZUV4dGVybmFsVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFs
VGV4dHVyZSYgb3BlcmF0b3I9KFJlbW90ZUV4dGVybmFsVGV4dHVyZSYmKSA9IGRlbGV0ZTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0
aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJp
bmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZT4gbV9iYWNraW5n
OworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRl
cm5hbFRleHR1cmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZGVkMjc4ZmYyOTI0YzI0MzA0YjBlMjNhMmYwM2FkOWViODgwNDkyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5h
bFRleHR1cmUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUV4dGVybmFsVGV4dHVyZSBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVHUFUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVHUFUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkNDBmNTA1YmNiNDA2MzU2MzRjOTY1ZmRm
YWJmYWMxYjA3MjQ4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVHUFUuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlR1BVOjpSZW1vdGVHUFUoUEFMOjpXZWJHUFU6OkdQVSYgZ3B1LCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoZ3B1KQorICAgICwgbV9v
YmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUdQVTo6flJlbW90ZUdQVSgpCit7
Cit9CisKK3ZvaWQgUmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFU6OlJlcXVl
c3RBZGFwdGVyT3B0aW9ucyYgb3B0aW9ucywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyYmLCBXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9ydGVkTGlt
aXRzJiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKKyAgICBV
TlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0OTJkMjljMjU2
ZGI2OTI2OGViOGNmY2VjYjE5NjY2NTJiYTM2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5oCkBAIC0wLDAgKzEs
NzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQ
VUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oIgorI2lu
Y2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0cy5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKK2NsYXNzIEdQVTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJH
UFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnM7Cit9
CisKK2NsYXNzIFJlbW90ZUdQVSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNl
aXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVHUFU+IGNyZWF0ZShQQUw6Oldl
YkdQVTo6R1BVJiBncHUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUdQVShncHUsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVHUFUoKTsKKworcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUdQVShQQUw6OldlYkdQVTo6R1BVJiwg
V2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVHUFUoY29uc3QgUmVtb3RlR1BVJikg
PSBkZWxldGU7CisgICAgUmVtb3RlR1BVKFJlbW90ZUdQVSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1v
dGVHUFUmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVHUFUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVH
UFUmIG9wZXJhdG9yPShSZW1vdGVHUFUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgcmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BVOjpS
ZXF1ZXN0QWRhcHRlck9wdGlvbnMmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
JiYsIFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMm
Jik+JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpHUFU+IG1fYmFja2luZzsKKyAgICBSZWY8
V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODY1OGU3ZjVjN2NlNDE2N2NjZDM0ZDU5MWQ1YjJmMTJlZTYx
N2E3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlR1BVLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisg
KiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVHUFUgTm90UmVm
Q291bnRlZCBTdHJlYW0geworICAgIHZvaWQgUmVxdWVzdEFkYXB0ZXIoV2ViS2l0OjpXZWJHUFU6
OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyBvcHRpb25zKSAtPiAoU3RyaW5nIG5hbWUsIFdlYktpdDo6
V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyBzdXBwb3J0ZWRGZWF0dXJlcywgV2ViS2l0OjpXZWJH
UFU6OlN1cHBvcnRlZExpbWl0cyBzdXBwb3J0ZWRMaW1pdHMpIFN5bmNocm9ub3VzCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVQaXBlbGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTBmYWRm
ZTY2YzQ4NTA3NWU5MTZkNTg2Mjg2MDVjZmQ1NDQzYzVmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91
dC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZW1vdGVQaXBlbGluZUxheW91dC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1JlbW90ZVBpcGVsaW5lTGF5b3V0OjpSZW1vdGVQaXBlbGluZUxheW91dChQQUw6OldlYkdQ
VTo6UGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9i
amVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocGlwZWxpbmVMYXlvdXQpCisgICAgLCBtX29iamVj
dEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUGlwZWxpbmVMYXlvdXQ6On5SZW1vdGVQ
aXBlbGluZUxheW91dCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUGlwZWxpbmVMYXlvdXQ6OnNldExh
YmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQ
aXBlbGluZUxheW91dC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVQaXBlbGluZUxheW91dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjZTlkYTUwZTkwNDQyZDEyMzI0
MjU4NjhmOTQ5MmRjMDViZWZmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmgKQEAgLTAsMCAr
MSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFBpcGVsaW5l
TGF5b3V0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7Citj
bGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVQaXBlbGluZUxheW91dCBmaW5hbCA6
IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZW1vdGVQaXBlbGluZUxheW91dD4gY3JlYXRlKFBBTDo6V2ViR1BVOjpQaXBlbGluZUxh
eW91dCYgcGlwZWxpbmVMYXlvdXQsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVBpcGVsaW5lTGF5b3V0KHBp
cGVsaW5lTGF5b3V0LCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3Rl
UGlwZWxpbmVMYXlvdXQoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVh
cDsKKworICAgIFJlbW90ZVBpcGVsaW5lTGF5b3V0KFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91
dCYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQoY29u
c3QgUmVtb3RlUGlwZWxpbmVMYXlvdXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVQaXBlbGluZUxh
eW91dChSZW1vdGVQaXBlbGluZUxheW91dCYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVQaXBlbGlu
ZUxheW91dCYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVBpcGVsaW5lTGF5b3V0JikgPSBkZWxldGU7
CisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQmIG9wZXJhdG9yPShSZW1vdGVQaXBlbGluZUxheW91
dCYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAg
dm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlBpcGVsaW5l
TGF5b3V0PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RI
ZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNDgzNGY4ZTFmYjlkMTU3MjMzMmNlMmU2MmJhYjZhMzgxODJmYzFlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlUGlwZWxp
bmVMYXlvdXQgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5n
IGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBj
M2I5NzhlOTI5YjM1YzliOTA1YjkyYjk0NTRiMzdlMDJiM2U5NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQu
Y3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVtb3RlUXVlcnlTZXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVF1ZXJ5U2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVRdWVy
eVNldDo6UmVtb3RlUXVlcnlTZXQoUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiBxdWVyeVNldCwgV2Vi
R1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHF1ZXJ5U2V0KQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVF1ZXJ5U2V0Ojp+
UmVtb3RlUXVlcnlTZXQoKQoreworfQorCit2b2lkIFJlbW90ZVF1ZXJ5U2V0OjpkZXN0cm95KCkK
K3sKK30KKwordm9pZCBSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7
CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTY1MDJlYjgxNzU0YjU3Y2JhYTA3OTQyOWMyOGU0ZGU0NWU3NjkwOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
cnlTZXQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUg
eworY2xhc3MgUXVlcnlTZXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2Ug
V2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVF1ZXJ5U2V0IGZp
bmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFJlbW90ZVF1ZXJ5U2V0PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiBx
dWVyeVNldCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUXVlcnlTZXQocXVlcnlTZXQsIG9iamVjdEhlYXAp
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVRdWVyeVNldCgpOworCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUXVlcnlTZXQoUEFMOjpX
ZWJHUFU6OlF1ZXJ5U2V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVRdWVy
eVNldChjb25zdCBSZW1vdGVRdWVyeVNldCYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXJ5U2V0
KFJlbW90ZVF1ZXJ5U2V0JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXJ5U2V0JiBvcGVyYXRv
cj0oY29uc3QgUmVtb3RlUXVlcnlTZXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVRdWVyeVNldCYg
b3BlcmF0b3I9KFJlbW90ZVF1ZXJ5U2V0JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNl
aXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGRlc3Ryb3koKTsKKworICAgIHZvaWQgc2V0TGFi
ZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4gbV9iYWNraW5n
OworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVy
eVNldC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdhODI2MDM0MGVhYmU5
ZjIwMzYyNjgwMTNhMDIwNjllMGZiNDdlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4K
QEAgLTAsMCArMSwzMSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisg
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21l
c3NhZ2VzIC0+IFJlbW90ZVF1ZXJ5U2V0IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IERlc3Ryb3koKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVldWUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVRdWV1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGExMTY1MTgzNTUxM2UwOWNhNjc2ODY0NGI3ODA2
Yzg4NjNlMTQ0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUXVldWUuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitSZW1vdGVRdWV1ZTo6UmVtb3RlUXVldWUoUEFMOjpXZWJHUFU6OlF1ZXVlJiBx
dWV1ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHF1
ZXVlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVF1ZXVl
Ojp+UmVtb3RlUXVldWUoKQoreworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjpzdWJtaXQoVmVjdG9y
PFdlYkdQVUlkZW50aWZpZXI+JiYgY29tbWFuZEJ1ZmZlcnMpCit7CisgICAgVU5VU0VEX1BBUkFN
KGNvbW1hbmRCdWZmZXJzKTsKK30KKwordm9pZCBSZW1vdGVRdWV1ZTo6b25TdWJtaXR0ZWRXb3Jr
RG9uZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBV
TlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjp3cml0ZUJ1ZmZl
cigKKyAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTY0
IGJ1ZmZlck9mZnNldCwKKyAgICBWZWN0b3I8dWludDhfdD4mJiBkYXRhKQoreworICAgIFVOVVNF
RF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShidWZmZXJPZmZzZXQpOworICAgIFVO
VVNFRF9QQVJBTShkYXRhKTsKK30KKwordm9pZCBSZW1vdGVRdWV1ZTo6d3JpdGVUZXh0dXJlKAor
ICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sCisgICAgVmVj
dG9yPHVpbnQ4X3Q+JiYgZGF0YSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlRGF0YUxheW91dCYg
ZGF0YUxheW91dCwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBzaXplKQoreworICAgIFVO
VVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRhdGEpOworICAgIFVO
VVNFRF9QQVJBTShkYXRhTGF5b3V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3Zv
aWQgUmVtb3RlUXVldWU6OmNvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKAorICAgIGNvbnN0IFdl
YkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSYgc291cmNlLAorICAgIGNvbnN0IFdlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCYgZGVzdGluYXRpb24sCisgICAgY29uc3QgV2ViR1BVOjpF
eHRlbnQzRCYgY29weVNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7CisgICAgVU5V
U0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oY29weVNpemUpOworfQor
Cit2b2lkIFJlbW90ZVF1ZXVlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVT
RURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjMwMWRhZDE1ODMz
ZDYxNzczMjNkNGNkYzYyNWEzZTJiZDJhY2VhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oCkBAIC0wLDAgKzEs
MTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJH
UFVFeHRlbnQzRC5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBl
cy5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBRdWV1ZTsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworc3RydWN0IEltYWdlQ29weUV4
dGVybmFsSW1hZ2U7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZTsKK3N0cnVjdCBJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkOworc3RydWN0IEltYWdlRGF0YUxheW91dDsKK2NsYXNzIE9iamVjdEhlYXA7
Cit9CisKK2NsYXNzIFJlbW90ZVF1ZXVlIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVF1ZXVlPiBjcmVhdGUo
UEFMOjpXZWJHUFU6OlF1ZXVlJiBxdWV1ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFw
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUXVldWUocXVldWUs
IG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVRdWV1ZSgpOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUXVldWUo
UEFMOjpXZWJHUFU6OlF1ZXVlJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVR
dWV1ZShjb25zdCBSZW1vdGVRdWV1ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXVlKFJlbW90
ZVF1ZXVlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXVlJiBvcGVyYXRvcj0oY29uc3QgUmVt
b3RlUXVldWUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVRdWV1ZSYgb3BlcmF0b3I9KFJlbW90ZVF1
ZXVlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6
OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICB2b2lkIHN1Ym1pdChWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJik7CisKKyAgICB2b2lkIG9u
U3VibWl0dGVkV29ya0RvbmUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworCisg
ICAgdm9pZCB3cml0ZUJ1ZmZlcigKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlNpemU2NCBidWZmZXJPZmZzZXQsCisgICAgICAgIFZlY3Rvcjx1aW50OF90
PiYmKTsKKworICAgIHZvaWQgd3JpdGVUZXh0dXJlKAorICAgICAgICBjb25zdCBXZWJHUFU6Oklt
YWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgICAgICBWZWN0b3I8dWludDhfdD4mJiwK
KyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZURhdGFMYXlvdXQmLAorICAgICAgICBjb25zdCBX
ZWJHUFU6OkV4dGVudDNEJiBzaXplKTsKKworICAgIHZvaWQgY29weUV4dGVybmFsSW1hZ2VUb1Rl
eHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSYgc291
cmNlLAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQmIGRlc3Rp
bmF0aW9uLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAg
ICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UXVldWU+
IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUXVldWUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVF1ZXVlLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNzYwYmIzMjZk
NTI4OWVlNGI0YWNmMjBiY2M3OGJhNDE3MzRmNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMzUgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
ICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCitt
ZXNzYWdlcyAtPiBSZW1vdGVRdWV1ZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBT
dWJtaXQoVmVjdG9yPFdlYktpdDo6V2ViR1BVSWRlbnRpZmllcj4gY29tbWFuZEJ1ZmZlcnMpCisg
ICAgdm9pZCBPblN1Ym1pdHRlZFdvcmtEb25lKCkgLT4gKCkgU3luY2hyb25vdXMKKyAgICB2b2lk
IFdyaXRlQnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6Oldl
YkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpCisgICAgdm9p
ZCBXcml0ZVRleHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUgZGVzdGluYXRp
b24sIFZlY3Rvcjx1aW50OF90PiBkYXRhLCBXZWJLaXQ6OldlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0
IGltYWdlRGF0YUxheW91dCwgV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNEIHNpemUpCisgICAgdm9p
ZCBDb3B5RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZShXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZSBzb3VyY2UsIFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlVGFnZ2Vk
IGRlc3RpbmF0aW9uLCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0QgY29weVNpemUpCisgICAgdm9p
ZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJC
dW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NDA1NzllMmQ5MGU2YWIwMTlmMzVkMGI5NjcxNGU5MTM2
ODM4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5kZXJCdW5kbGUu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZS5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUmVuZGVyQnVuZGxlOjpSZW1vdGVSZW5k
ZXJCdW5kbGUoUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSYgcmVuZGVyQnVuZGxlLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocmVuZGVyQnVuZGxlKQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlckJ1bmRs
ZTo6flJlbW90ZVJlbmRlckJ1bmRsZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxl
OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlMmFiMDRmY2IxNDU2OWZl
YTNkZTViOTRkNzk1YTRjZDRiZjcyODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5oCkBAIC0wLDAg
KzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldl
YkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJC
dW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2Ns
YXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVJlbmRlckJ1bmRsZSBmaW5hbCA6IHB1
YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVSZW5kZXJCdW5kbGU+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlJiBy
ZW5kZXJCdW5kbGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVJlbmRlckJ1bmRsZShyZW5kZXJCdW5kbGUs
IG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVSZW5kZXJCdW5kbGUo
KTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90
ZVJlbmRlckJ1bmRsZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUoY29uc3QgUmVtb3RlUmVuZGVyQnVuZGxl
JikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyQnVuZGxlKFJlbW90ZVJlbmRlckJ1bmRsZSYm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUmIG9wZXJhdG9yPShjb25zdCBSZW1v
dGVSZW5kZXJCdW5kbGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUmIG9wZXJh
dG9yPShSZW1vdGVSZW5kZXJCdW5kbGUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVm
PFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpP
YmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJC
dW5kbGUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDMxMjI2Y2Y3ZjgxMGZlZDBjNzk0ZjAwMmI3
ZmVjMjc3NDM4NTAwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisg
KiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAt
PiBSZW1vdGVSZW5kZXJCdW5kbGUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0
TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNjUyN2YyZmY5OTk0ODM1NTRlNTlkZjhk
NDVmZGJmZWNkY2I5YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCkBAIC0wLDAg
KzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoUEFM
OjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXImIHJlbmRlckJ1bmRsZUVuY29kZXIsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJCdW5kbGVF
bmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXI6On5SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKCkKK3sKK30KKwor
dm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlm
aWVyIHJlbmRlclBpcGVsaW5lKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJQaXBlbGluZSk7
Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0SW5kZXhCdWZmZXIoV2Vi
R1BVSWRlbnRpZmllciBidWZmZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1h
dCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oYnVmZmVyKTsKKyAgICBVTlVTRURf
UEFSQU0oaW5kZXhGb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNF
RF9QQVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViR1BVSWRlbnRpZmllciBi
dWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaXplNjQ+IHNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKHNsb3QpOworICAgIFVOVVNF
RF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9Q
QVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3KFBB
TDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFu
Y2VDb3VudCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQ
VTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHZlcnRleENvdW50
KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZp
cnN0VmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUz
MiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgUEFM
OjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LAorICAgIFBBTDo6V2ViR1BVOjpTaWduZWRPZmZz
ZXQzMiBiYXNlVmVydGV4LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oaW5kZXhDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdEluZGV4KTsKKyAgICBVTlVTRURfUEFS
QU0oYmFzZVZlcnRleCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5zdGFuY2UpOworfQorCit2
b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlm
aWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQor
eworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGlyZWN0T2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3
SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2Vi
R1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0
QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lkIFJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgz
MiBpbmRleCwgV2ViR1BVSWRlbnRpZmllciBiaW5kR3JvdXAsCisgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIGR5bmFtaWNPZmZzZXRz
KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGJpbmRHcm91
cCk7CisgICAgVU5VU0VEX1BBUkFNKGR5bmFtaWNPZmZzZXRzKTsKK30KKwordm9pZCBSZW1vdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyOjpwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKQor
eworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCkKK3sK
KyAgICBVTlVTRURfUEFSQU0obWFya2VyTGFiZWwpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1
bmRsZUVuY29kZXI6OmZpbmlzaChjb25zdCBXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQor
eworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1
bmRsZUVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmY5ODUyMjEwNDc3NDc1MmEwZDUxZDUzN2U2ZDU2
MjdjN2I5OWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKQEAgLTAsMCArMSwxMDEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9y
bWF0Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVz
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVyQnVuZGxlRW5jb2RlcjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2Jq
ZWN0SGVhcDsKK3N0cnVjdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9yOworfQorCitjbGFzcyBSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJl
Y2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRlckJ1bmRsZUVuY29k
ZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciYgcmVuZGVyQnVuZGxl
RW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihyZW5kZXJCdW5k
bGVFbmNvZGVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgflJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKwor
ICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVu
Y29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXIoY29uc3QgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciYmKSA9IGRl
bGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3QgUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXImIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJiYpID0gZGVsZXRl
OworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNv
bm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldFBpcGVs
aW5lKFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRJbmRleEJ1ZmZlcihXZWJHUFVJ
ZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQg
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+KTsKKyAgICB2b2lkIHNl
dFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVy
LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTY0Pik7CisKKyAgICB2b2lkIGRyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3Vu
dCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgICAgICBQQUw6OldlYkdQ
VTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2Up
OworICAgIHZvaWQgZHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpT
aXplMzIgZmlyc3RJbmRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJh
c2VWZXJ0ZXgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSk7CisK
KyAgICB2b2lkIGRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQ
QUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsKKyAgICB2b2lkIGRyYXdJbmRleGVk
SW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAgICB2b2lkIHNldEJpbmRHcm91cChQQUw6OldlYkdQ
VTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIGR5bmFtaWNPZmZzZXRzKTsK
KworICAgIHZvaWQgcHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9p
ZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBt
YXJrZXJMYWJlbCk7CisKKyAgICB2b2lkIGZpbmlzaChjb25zdCBXZWJHUFU6OlJlbmRlckJ1bmRs
ZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3Ry
aW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyPiBtX2Jh
Y2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTNmN2NmOTAzNzBjYzY3MjkxNGYxZjIyZTEzNDA4N2ZhOWRlMTJjYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQyIEBACisv
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2RlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRQaXBl
bGluZShXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFNldElu
ZGV4QnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OldlYkdQ
VTo6SW5kZXhGb3JtYXQgaW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCisgICAgdm9pZCBTZXRWZXJ0
ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCisgICAgdm9pZCBEcmF3KFBBTDo6V2ViR1BVOjpT
aXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwgUEFM
OjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdElu
c3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUzMiBpbmRleENv
dW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsIFBBTDo6V2ViR1BVOjpTaXpl
MzIgZmlyc3RJbmRleCwgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsIFBB
TDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkKKyAgICB2b2lkIERyYXdJbmRpcmVjdChX
ZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXpl
NjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBEcmF3SW5kZXhlZEluZGlyZWN0KFdlYktpdDo6
V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRp
cmVjdE9mZnNldCkKKyAgICB2b2lkIFNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBp
bmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4gZHluYW1pY09mZnNldHMp
CisgICAgdm9pZCBQdXNoRGVidWdHcm91cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lkIFBv
cERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtlckxh
YmVsKQorICAgIHZvaWQgRmluaXNoKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFjOTcyOWNlMWFkMDk1ODYzZjY1
MDQzMzBmOWQ1MjE1ZTY0NTkyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwCkBAIC0w
LDAgKzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyKFBBTDo6V2Vi
R1BVOjpSZW5kZXJQYXNzRW5jb2RlciYgcmVuZGVyUGFzc0VuY29kZXIsIFdlYkdQVTo6T2JqZWN0
SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJQYXNzRW5jb2RlcikKKyAg
ICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlcjo6flJlbW90ZVJlbmRlclBhc3NFbmNvZGVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoV2ViR1BVSWRlbnRpZmllciByZW5kZXJQaXBlbGlu
ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0ocmVuZGVyUGlwZWxpbmUpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlmaWVyIGJ1ZmZl
ciwgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0IGluZGV4Rm9ybWF0LCBQQUw6OldlYkdQVTo6U2l6
ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplKQorewor
ICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShpbmRleEZvcm1hdCk7
CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQor
Cit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJH
UFU6OkluZGV4MzIgc2xvdCwgV2ViR1BVSWRlbnRpZmllciBidWZmZXIsIFBBTDo6V2ViR1BVOjpT
aXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCit7
CisgICAgVU5VU0VEX1BBUkFNKHNsb3QpOworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAg
IFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwordm9p
ZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyhQQUw6OldlYkdQVTo6U2l6ZTMyIHZlcnRl
eENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgUEFMOjpXZWJH
UFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNl
KQoreworICAgIFVOVVNFRF9QQVJBTSh2ZXJ0ZXhDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdFZlcnRleCk7CisgICAgVU5VU0VE
X1BBUkFNKGZpcnN0SW5zdGFuY2UpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BV
OjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5k
ZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgUEFM
OjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQoreworICAgIFVOVVNFRF9QQVJBTShpbmRl
eENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BB
UkFNKGZpcnN0SW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShiYXNlVmVydGV4KTsKKyAgICBVTlVT
RURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXI6OmRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6Oldl
YkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVj
dEJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKK30KKwordm9pZCBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdChXZWJHUFVJZGVudGlm
aWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQor
eworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGlyZWN0QnVmZmVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Qmlu
ZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGJpbmRH
cm91cCwKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1p
Y09mZnNldD4+JiYgZHluYW1pY09mZnNldHMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsK
KyAgICBVTlVTRURfUEFSQU0oYmluZEdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0oZHluYW1pY09m
ZnNldHMpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpwdXNoRGVidWdHcm91
cChTdHJpbmcmJiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCgpCit7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmlu
ZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0
IHksCisgICAgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwKKyAgICBmbG9hdCBtaW5EZXB0aCwg
ZmxvYXQgbWF4RGVwdGgpCit7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAgIFVOVVNFRF9QQVJB
TSh5KTsKKyAgICBVTlVTRURfUEFSQU0od2lkdGgpOworICAgIFVOVVNFRF9QQVJBTShoZWlnaHQp
OworICAgIFVOVVNFRF9QQVJBTShtaW5EZXB0aCk7CisgICAgVU5VU0VEX1BBUkFNKG1heERlcHRo
KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJlY3QoUEFM
OjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHgsIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZSB5LAorICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aCwgUEFMOjpX
ZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGhlaWdodCkKK3sKKyAgICBVTlVTRURfUEFSQU0oeCk7
CisgICAgVU5VU0VEX1BBUkFNKHkpOworICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7CisgICAgVU5V
U0VEX1BBUkFNKGhlaWdodCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNl
dEJsZW5kQ29uc3RhbnQoV2ViR1BVOjpDb2xvciBjb2xvcikKK3sKKyAgICBVTlVTRURfUEFSQU0o
Y29sb3IpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTdGVuY2lsUmVm
ZXJlbmNlKFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWUgc3RlbmNpbFZhbHVlKQoreworICAgIFVO
VVNFRF9QQVJBTShzdGVuY2lsVmFsdWUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNv
ZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkK
K3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlJbmRleCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXI6OmVuZE9jY2x1c2lvblF1ZXJ5KCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJHUFVJZGVudGlm
aWVyIHF1ZXJ5U2V0LCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXgpCit7CisgICAgVU5V
U0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlJbmRleCk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5
KCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZXhlY3V0ZUJ1bmRsZXMo
VmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+JiYgcmVuZGVyQnVuZGxlcykKK3sKKyAgICBVTlVTRURf
UEFSQU0ocmVuZGVyQnVuZGxlcyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6
OmVuZFBhc3MoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTNmNjg5ZTMyOWZkNjU2
MTg5NjU0OGFkMWExNDk4YzIxMTA5OTFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oCkBA
IC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNs
dWRlICJXZWJHUFVDb2xvci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg+CisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFM
OjpXZWJHUFUgeworY2xhc3MgUmVuZGVyUGFzc0VuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNz
IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRlclBhc3NFbmNv
ZGVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiByZW5kZXJQYXNzRW5j
b2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIocmVuZGVyUGFzc0VuY29k
ZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB+UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIo
KTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90
ZVJlbmRlclBhc3NFbmNvZGVyKFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciYsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoY29uc3QgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5j
b2RlcihSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2RlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyJikg
PSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXImIG9wZXJhdG9yPShSZW1vdGVS
ZW5kZXJQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVh
bU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworCisgICAgdm9pZCBzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyKTsKKworICAg
IHZvaWQgc2V0SW5kZXhCdWZmZXIoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OkluZGV4
Rm9ybWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6U2l6ZTY0Pik7CisgICAgdm9pZCBzZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6Oklu
ZGV4MzIgc2xvdCwgV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4pOworCisgICAgdm9pZCBkcmF3KFBB
TDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFu
Y2VDb3VudCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFMOjpX
ZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKTsKKyAgICB2b2lkIGRyYXdJbmRleGVkKFBBTDo6
V2ViR1BVOjpTaXplMzIgaW5kZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNv
dW50LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5kZXgsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpTaWduZWRPZmZzZXQzMiBiYXNlVmVydGV4LAorICAgICAgICBQQUw6OldlYkdQ
VTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworCisgICAgdm9pZCBkcmF3SW5kaXJlY3QoV2ViR1BV
SWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9m
ZnNldCk7CisgICAgdm9pZCBkcmF3SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5k
aXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpOworCisgICAg
dm9pZCBzZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIsIFdlYkdQVUlkZW50aWZpZXIs
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWlj
T2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cyk7CisKKyAgICB2b2lkIHB1c2hEZWJ1Z0dyb3VwKFN0
cmluZyYmIGdyb3VwTGFiZWwpOworICAgIHZvaWQgcG9wRGVidWdHcm91cCgpOworICAgIHZvaWQg
aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpOworCisgICAgdm9pZCBzZXRW
aWV3cG9ydChmbG9hdCB4LCBmbG9hdCB5LAorICAgICAgICBmbG9hdCB3aWR0aCwgZmxvYXQgaGVp
Z2h0LAorICAgICAgICBmbG9hdCBtaW5EZXB0aCwgZmxvYXQgbWF4RGVwdGgpOworCisgICAgdm9p
ZCBzZXRTY2lzc29yUmVjdChQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpX
ZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHksCisgICAgICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSB3aWR0aCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGhlaWdodCk7
CisKKyAgICB2b2lkIHNldEJsZW5kQ29uc3RhbnQoV2ViR1BVOjpDb2xvcik7CisgICAgdm9pZCBz
ZXRTdGVuY2lsUmVmZXJlbmNlKFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWUpOworCisgICAgdm9p
ZCBiZWdpbk9jY2x1c2lvblF1ZXJ5KFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCk7Cisg
ICAgdm9pZCBlbmRPY2NsdXNpb25RdWVyeSgpOworCisgICAgdm9pZCBiZWdpblBpcGVsaW5lU3Rh
dGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJ
bmRleCk7CisgICAgdm9pZCBlbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpOworCisgICAgdm9p
ZCBleGVjdXRlQnVuZGxlcyhWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJik7CisgICAgdm9pZCBl
bmRQYXNzKCk7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6
OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpP
YmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlclBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YjdiYWFhOGVhYzA5YjM3
NWNmYmE3ODRhOWQzMjhiZGQ2YjZhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsNTEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciBOb3RSZWZDb3VudGVkIFN0
cmVhbSB7CisgICAgdm9pZCBTZXRQaXBlbGluZShXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICB2b2lkIFNldEluZGV4QnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhGb3JtYXQsIFBBTDo6
V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+
IHNpemUpCisgICAgdm9pZCBTZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xv
dCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXpl
NjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCisgICAg
dm9pZCBEcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpT
aXplMzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFM
OjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGV4ZWQoUEFM
OjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNl
Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwgUEFMOjpXZWJHUFU6OlNpZ25l
ZE9mZnNldDMyIGJhc2VWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkK
KyAgICB2b2lkIERyYXdJbmRpcmVjdChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RC
dWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBEcmF3
SW5kZXhlZEluZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwg
UEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIFNldEJpbmRHcm91
cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWlj
T2Zmc2V0Pj4gZHluYW1pY09mZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChTdHJpbmcg
Z3JvdXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5zZXJ0RGVi
dWdNYXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZvaWQgU2V0Vmlld3BvcnQoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgbWluRGVwdGgsIGZs
b2F0IG1heERlcHRoKQorICAgIHZvaWQgU2V0U2Npc3NvclJlY3QoUEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlIHgsIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB5LCBQQUw6Oldl
YkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgd2lkdGgsIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZSBoZWlnaHQpCisgICAgdm9pZCBTZXRCbGVuZENvbnN0YW50KFdlYktpdDo6V2ViR1BVOjpD
b2xvciBjb2xvcikKKyAgICB2b2lkIFNldFN0ZW5jaWxSZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0
ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpCisgICAgdm9pZCBCZWdpbk9jY2x1c2lvblF1ZXJ5KFBB
TDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKKyAgICB2b2lkIEVuZE9jY2x1c2lvblF1ZXJ5
KCkKKyAgICB2b2lkIEJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoV2ViS2l0OjpXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKKyAg
ICB2b2lkIEVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkKKyAgICB2b2lkIEV4ZWN1dGVCdW5k
bGVzKFZlY3RvcjxXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXI+IGJ1bmRsZXMpCisgICAgdm9pZCBF
bmRQYXNzKCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlclBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhNDBhOTAzNjQ5OTFl
YzY0ZGQzMGI0MGRkYmU3NmJiZTk3ZjE3NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmNwcApA
QCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZVJlbmRlclBpcGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVt
b3RlUmVuZGVyUGlwZWxpbmU6OlJlbW90ZVJlbmRlclBpcGVsaW5lKFBBTDo6V2ViR1BVOjpSZW5k
ZXJQaXBlbGluZSYgcmVuZGVyUGlwZWxpbmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVh
cCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJQaXBlbGluZSkKKyAgICAsIG1fb2JqZWN0SGVhcChv
YmplY3RIZWFwKQoreworfQorCitSZW1vdGVSZW5kZXJQaXBlbGluZTo6flJlbW90ZVJlbmRlclBp
cGVsaW5lKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0QmluZEdyb3Vw
TGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGlwZWxpbmU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQor
eworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGlu
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZkZTg4ZmNhZTY5NTE4MDU4YzI0ZjlkMWVkNzcyOTUyMWNlOTk4YzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3Ry
ZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFJlbmRlclBpcGVsaW5lOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQor
CitjbGFzcyBSZW1vdGVSZW5kZXJQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1l
c3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVSZW5kZXJQaXBl
bGluZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSYgcmVuZGVyUGlwZWxpbmUs
IFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlbW90ZVJlbmRlclBpcGVsaW5lKHJlbmRlclBpcGVsaW5lLCBvYmplY3RI
ZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlUmVuZGVyUGlwZWxpbmUoKTsKKwor
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVJlbmRl
clBpcGVsaW5lKFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSYsIFdlYkdQVTo6T2JqZWN0SGVh
cCYpOworCisgICAgUmVtb3RlUmVuZGVyUGlwZWxpbmUoY29uc3QgUmVtb3RlUmVuZGVyUGlwZWxp
bmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZShSZW1vdGVSZW5kZXJQaXBl
bGluZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZSYgb3BlcmF0b3I9KGNv
bnN0IFJlbW90ZVJlbmRlclBpcGVsaW5lJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyUGlw
ZWxpbmUmIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJQaXBlbGluZSYmKSA9IGRlbGV0ZTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
QmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBnZXRCaW5kR3JvdXBMYXlv
dXQodWludDMyX3QgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRMYWJl
bChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPiBtX2Jh
Y2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYzg3OTQ3NzRlMDg2ODFkZDhkMGFiMGYxMDYyODdmZjJmMzNjMzVkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5k
ZXJQaXBlbGluZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyUGlwZWxpbmUgTm90
UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgR2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90
IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgdm9pZCBT
ZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGIyNDZjOGM1NjBhNzcyYWJhZWU4MDRjNjFkNTU4OGEwNzY1NmQxYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlU2FtcGxlci5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZW1vdGVTYW1wbGVyOjpSZW1vdGVTYW1wbGVyKFBBTDo6V2ViR1BVOjpTYW1wbGVyJiBzYW1wbGVy
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoc2FtcGxl
cikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVTYW1wbGVy
Ojp+UmVtb3RlU2FtcGxlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlcjo6c2V0TGFiZWwo
U3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBs
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2Ft
cGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4Yzk3MWUxMDY5YTFhNjY3NWQ5YzNiMjg1ZDE2YTZmZTcxN2Uy
YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVNhbXBsZXIuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUgeworY2xhc3MgU2FtcGxlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVt
b3RlU2FtcGxlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVTYW1wbGVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6
OlNhbXBsZXImIHNhbXBsZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZXIoc2FtcGxlciwgb2Jq
ZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVNhbXBsZXIoKTsKKworcHJp
dmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVNhbXBsZXIo
UEFMOjpXZWJHUFU6OlNhbXBsZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90
ZVNhbXBsZXIoY29uc3QgUmVtb3RlU2FtcGxlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVNhbXBs
ZXIoUmVtb3RlU2FtcGxlciYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTYW1wbGVyJiBvcGVyYXRv
cj0oY29uc3QgUmVtb3RlU2FtcGxlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVNhbXBsZXImIG9w
ZXJhdG9yPShSZW1vdGVTYW1wbGVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZl
U3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQ
QUw6OldlYkdQVTo6U2FtcGxlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhl
YXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVjZGFjMWI2OWNjNzZlNjI0ODkxZTg4ZWFkOGQxZDRhNzA2ZTU1MTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVNhbXBsZXIgTm90UmVm
Q291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlU2hhZGVyTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VmMDkzZDc3
OWFhNzcxZGVkZmVjZTgxZTU4ZWY4NDdlOGRjNDRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3Bw
CkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlU2hhZGVyTW9kdWxlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVTaGFkZXJNb2R1bGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90
ZVNoYWRlck1vZHVsZTo6UmVtb3RlU2hhZGVyTW9kdWxlKFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1
bGUmIHNoYWRlck1vZHVsZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDog
bV9iYWNraW5nKHNoYWRlck1vZHVsZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQor
eworfQorCitSZW1vdGVTaGFkZXJNb2R1bGU6On5SZW1vdGVTaGFkZXJNb2R1bGUoKQoreworfQor
Cit2b2lkIFJlbW90ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiYpPiYmIGNh
bGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3Rl
U2hhZGVyTW9kdWxlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFS
QU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMTIw
YzBiNTM4MDkxYmE3NGRmZjQxMDMwYTFmYzk0ZDllM2I5NDIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVs
ZS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIldlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oIgorI2luY2x1ZGUgIldlYkdQVUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgU2hhZGVyTW9k
dWxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFz
cyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVTaGFkZXJNb2R1bGUgZmluYWwgOiBwdWJs
aWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVtb3RlU2hhZGVyTW9kdWxlPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSYgc2hh
ZGVyTW9kdWxlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVTaGFkZXJNb2R1bGUoc2hhZGVyTW9kdWxlLCBv
YmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlU2hhZGVyTW9kdWxlKCk7
CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVT
aGFkZXJNb2R1bGUoUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSYsIFdlYkdQVTo6T2JqZWN0SGVh
cCYpOworCisgICAgUmVtb3RlU2hhZGVyTW9kdWxlKGNvbnN0IFJlbW90ZVNoYWRlck1vZHVsZSYp
ID0gZGVsZXRlOworICAgIFJlbW90ZVNoYWRlck1vZHVsZShSZW1vdGVTaGFkZXJNb2R1bGUmJikg
PSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxlJiBvcGVyYXRvcj0oY29uc3QgUmVtb3Rl
U2hhZGVyTW9kdWxlJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxlJiBvcGVyYXRv
cj0oUmVtb3RlU2hhZGVyTW9kdWxlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZl
U3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGNvbXBpbGF0aW9uSW5mbyhXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiYmKT4mJik7CisK
KyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6U2hh
ZGVyTW9kdWxlPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmpl
Y3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjljODNhZTZmNWEyZjQxYTY5Nzk0ZjkxMWJjMWNjNWVhNDEyNzg1MGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlU2hhZGVyTW9k
dWxlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIENvbXBpbGF0aW9uSW5mbygpIC0+
IChWZWN0b3I8V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4gbWVzc2FnZXMpIFN5
bmNocm9ub3VzCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlVGV4dHVyZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhmZDI0ZGMzYTUyMzJmMDQ5MWQ2ZGU5NDg1
Y2E4ZWFiODgzMWY0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVUZXh0dXJlLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVUZXh0dXJlOjpSZW1vdGVUZXh0dXJlKFBBTDo6V2Vi
R1BVOjpUZXh0dXJlJiB0ZXh0dXJlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisg
ICAgOiBtX2JhY2tpbmcodGV4dHVyZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQor
eworfQorCitSZW1vdGVUZXh0dXJlOjp+UmVtb3RlVGV4dHVyZSgpCit7Cit9CisKK3ZvaWQgUmVt
b3RlVGV4dHVyZTo6Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQVTo6VGV4dHVy
ZVZpZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRl
bnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlVGV4dHVyZTo6ZGVzdHJveSgpCit7Cit9CisKK3Zv
aWQgUmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VE
X1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMzVlZDI0ODlm
NTc2M2FhZjI4ZjA2ZTRlZjg3NGE1ZTA2MmQyZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaApAQCAtMCww
ICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJX
ZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgVGV4dHVy
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3Mg
T2JqZWN0SGVhcDsKK3N0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJl
bW90ZVRleHR1cmUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlVGV4dHVyZT4gY3JlYXRlKFBBTDo6V2ViR1BV
OjpUZXh0dXJlJiB0ZXh0dXJlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0dXJlKHRleHR1cmUsIG9i
amVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVUZXh0dXJlKCk7CisKK3By
aXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVUZXh0dXJl
KFBBTDo6V2ViR1BVOjpUZXh0dXJlJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1v
dGVUZXh0dXJlKGNvbnN0IFJlbW90ZVRleHR1cmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0
dXJlKFJlbW90ZVRleHR1cmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlVGV4dHVyZSYgb3BlcmF0
b3I9KGNvbnN0IFJlbW90ZVRleHR1cmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlJiBv
cGVyYXRvcj0oUmVtb3RlVGV4dHVyZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2
ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOworCisgICAgdm9pZCBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8
V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAg
ICB2b2lkIGRlc3Ryb3koKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAg
UmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2Jq
ZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmNmZTlmNjBkY2I5OTY0YmVjNThlZTAxMDM3ZjllZmQ2M2U5YTZm
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMyIEBACisvKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlVGV4dHVyZSBO
b3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBDcmVhdGVWaWV3KHN0ZDo6b3B0aW9uYWw8
V2ViS2l0OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4gZGVzY3JpcHRvciwgV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBEZXN0cm95KCkKKyAgICB2
b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVy
ZVZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYTRhNzg2MzZhZmJlMWFiYmRiMjYzODViY2Y4ODg4NTEx
NTJjZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHR1cmVWaWV3Lmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlldy5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlVGV4dHVyZVZpZXc6OlJlbW90ZVRleHR1cmVW
aWV3KFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyYgdGV4dHVyZVZpZXcsIFdlYkdQVTo6T2JqZWN0
SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyh0ZXh0dXJlVmlldykKKyAgICAsIG1f
b2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVUZXh0dXJlVmlldzo6flJlbW90
ZVRleHR1cmVWaWV3KCkKK3sKK30KKwordm9pZCBSZW1vdGVUZXh0dXJlVmlldzo6c2V0TGFiZWwo
U3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVRleHR1cmVWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAwNWZjYWRiZTQ3NzE4ZGQ5ZDA5YWQ0Mzk0OTYx
ZDczNTBkZGQyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuaApAQCAtMCwwICsxLDc0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgVGV4dHVyZVZpZXc7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7
Cit9CisKK2NsYXNzIFJlbW90ZVRleHR1cmVWaWV3IGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFt
TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVRleHR1cmVW
aWV3PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3JiB0ZXh0dXJlVmlldywgV2ViR1BV
OjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUmVtb3RlVGV4dHVyZVZpZXcodGV4dHVyZVZpZXcsIG9iamVjdEhlYXApKTsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVUZXh0dXJlVmlldygpOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlVGV4dHVyZVZpZXcoUEFMOjpXZWJH
UFU6OlRleHR1cmVWaWV3JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVUZXh0
dXJlVmlldyhjb25zdCBSZW1vdGVUZXh0dXJlVmlldyYpID0gZGVsZXRlOworICAgIFJlbW90ZVRl
eHR1cmVWaWV3KFJlbW90ZVRleHR1cmVWaWV3JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVRleHR1
cmVWaWV3JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlVGV4dHVyZVZpZXcmKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVUZXh0dXJlVmlldyYgb3BlcmF0b3I9KFJlbW90ZVRleHR1cmVWaWV3JiYpID0gZGVs
ZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZl
ckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExh
YmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+IG1fYmFj
a2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZVZpZXcubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZmRi
YjAwMzA4N2YzZmNjOGZhNDAwYzA0MjNjMWI0NzI0OTY2OWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVUZXh0dXJlVmlldyBOb3RSZWZDb3VudGVkIFN0
cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVP
YmplY3RIZWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVT2JqZWN0SGVhcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYwZTk0ZjZjMjEwYjBiMGMwOWFhZmE4
OTY2NDdlZDFmZjc2OTU5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKQEAgLTAsMCArMSwyMzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVT2Jq
ZWN0SGVhcC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUFkYXB0ZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5
b3V0Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXIuaD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXIuaD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyLmg+CisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oPgorI2luY2x1
ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmg+CisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dC5oPgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUXVlcnlTZXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVF1ZXVlLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJCdW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NFbmNvZGVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQaXBlbGluZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2Ft
cGxlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxl
Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmg+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlldy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgeworCitPYmplY3RIZWFwOjpPYmplY3RIZWFwKCkKK3sKK30KKwor
T2JqZWN0SGVhcDo6fk9iamVjdEhlYXAoKQoreworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QWRh
cHRlciogT2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRlcmF0b3ItPnZh
bHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQ
QUw6OldlYkdQVTo6QWRhcHRlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0
IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpC
aW5kR3JvdXA+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+PihpdGVyYXRvci0+
dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBP
YmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChp
ZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6
OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0Pj4oaXRl
cmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6
Z2V0PFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKS5w
dHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVy
dEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBh
dXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJh
dG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFM
OjpXZWJHUFU6OkJ1ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4+KGl0ZXJh
dG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVy
KiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXI+PihpdGVy
YXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpn
ZXQ8UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIo
KTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBPYmplY3RIZWFwOjpj
b252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwor
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENv
bXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAg
aWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisK
K2NvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIE9iamVjdEhlYXA6OmNvbnZlcnRD
b21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlm
IChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8
UmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BV
OjpDb21wdXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQ
QUw6OldlYkdQVTo6RGV2aWNlKiBPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29i
amVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVu
ZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPj4o
aXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0
ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsK
K30KKworY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0SGVhcDo6Y29udmVydEdQVUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2Jq
ZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkdQ
VT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkdQVT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7
Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCogT2JqZWN0SGVhcDo6Y29u
dmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0
aXZlPFJlZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2Vi
R1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0
IFBBTDo6V2ViR1BVOjpRdWVyeVNldCogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXJ5U2V0RnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmpl
Y3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UXVl
cnlTZXQ+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1
ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogT2JqZWN0SGVhcDo6Y29u
dmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRl
cmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQ
QUw6OldlYkdQVTo6UXVldWU+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJh
dG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVF
bmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9v
YmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5l
bmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1
bmRsZUVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVy
Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRl
ckJ1bmRsZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3Rz
LmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8
fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4+
KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBz
dGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJhdG9yLT52YWx1ZSku
cHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciogT2JqZWN0
SGVhcDo6Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVu
dGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6Omhv
bGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI+PihpdGVy
YXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpn
ZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSku
cHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogT2JqZWN0SGVh
cDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVy
KTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2Fs
dGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+PihpdGVyYXRvci0+dmFs
dWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBB
TDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisK
K2NvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJh
dG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
b2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6
OlNhbXBsZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpTYW1wbGVyPj4oaXRlcmF0b3ItPnZh
bHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSogT2JqZWN0
SGVhcDo6Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmll
cik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19h
bHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJhdG9yLT52YWx1
ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFM
OjpXZWJHUFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2Nv
bnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2Jq
ZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlRl
eHR1cmU+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBPYmplY3RIZWFw
Ojpjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwor
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4+KGl0ZXJhdG9yLT52YWx1ZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJH
UFU6OlRleHR1cmVWaWV3Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEhBVkUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9i
amVjdEhlYXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVT2JqZWN0SGVhcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0NmQxZTUxNzk3YjY2YTBlMzZlNjhiN2M1MTBi
YjUwMmJkMDE5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaApAQCAtMCwwICsxLDEwMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdQ
VUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx2YXJpYW50PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewor
CitjbGFzcyBPYmplY3RIZWFwIGZpbmFsIDogcHVibGljIFdlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxPYmplY3RIZWFwPiBjcmVhdGUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2JqZWN0SGVhcCgpKTsKKyAg
ICB9CisKKyAgICB+T2JqZWN0SGVhcCgpOworCitwcml2YXRlOgorICAgIE9iamVjdEhlYXAoKTsK
KworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBjb252ZXJ0QWRhcHRlckZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5k
R3JvdXAqIGNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5h
bDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBjb252ZXJ0QmluZEdy
b3VwTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3Qg
UEFMOjpXZWJHUFU6OkJ1ZmZlciogY29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252
ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAg
IGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJH
UFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21w
dXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlKiBjb252ZXJ0RGV2
aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpX
ZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFs
OworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCogY29udmVydFBpcGVsaW5l
TGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFM
OjpXZWJHUFU6OlF1ZXJ5U2V0KiBjb252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6UXVldWUqIGNvbnZlcnRRdWV1
ZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2Vi
R1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpS
ZW5kZXJCdW5kbGUqIGNvbnZlcnRSZW5kZXJCdW5kbGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXIqIGNv
bnZlcnRSZW5kZXJQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFs
OworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogY29udmVydFJlbmRlclBp
cGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFM
OjpXZWJHUFU6OlNhbXBsZXIqIGNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSogY29udmVy
dFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyog
Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisK
KyAgICB1c2luZyBPYmplY3QgPSBzdGQ6OnZhcmlhbnQ8CisgICAgICAgIFJlZjxQQUw6OldlYkdQ
VTo6QWRhcHRlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwPiwKKyAgICAg
ICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+LAorICAgICAgICBSZWY8UEFMOjpX
ZWJHUFU6OkJ1ZmZlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlcj4s
CisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+LAorICAgICAgICBSZWY8
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQ
VTo6Q29tcHV0ZVBpcGVsaW5lPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+LAor
ICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkdQVT4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6
UGlwZWxpbmVMYXlvdXQ+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiwKKyAg
ICAgICAgUmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6
UmVuZGVyQnVuZGxlRW5jb2Rlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVu
ZGxlPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4sCisgICAg
ICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+LAorICAgICAgICBSZWY8UEFMOjpX
ZWJHUFU6OlNhbXBsZXI+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4s
CisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4sCisgICAgICAgIFJlZjxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXc+CisgICAgPjsKKyAgICBIYXNoTWFwPFdlYkdQVUlkZW50aWZpZXIs
IE9iamVjdD4gbV9vYmplY3RzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgKaW5k
ZXggOGY3ZDM2MzNkZDAyZDkwYTFhNTYwNGEwMDYzNGUzMWZhNTFiNTdmYS4uMjcwZTFlYmUzMTIz
NWY3Nzg2ZGYwN2I5MDAwYTFjODdhNTdkMjdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFj
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVyQVZGT2JqQy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggOGJkMGRiMjk3YmZiNDA3NGY2ODkwMDQyZmNkYTQ3ODQ1MGRmMDU2Ni4uMzE5NmM1Y2Y1ODZk
MjRlMTA2YWYyYmFiMDFlY2I5NDJkZTFiNGYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0zNTgsNiArMzU4LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90
X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6VHJhbnNhY3Rpb25JRCcs
CiAgICAgICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktp
dDo6V2ViR1BVSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlhSRGV2aWNlSWRlbnRpZmllcicsCkBAIC02NzgsMjEgKzY3OSw2
OSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICBoZWFkZXJfaW5mb3NfYW5kX3R5
cGVzID0gY2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQogCiAgICAgc3BlY2lhbF9jYXNlcyA9
IHsKLSAgICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3dGYvTWFjaFNlbmRSaWdodC5oPiddLAot
ICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4nXSwKLSAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsnPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPiddLAogICAgICAgICAnSVBDOjpTZW1hcGhvcmUnOiBbJyJJUENTZW1h
cGhvcmUuaCInXSwKICAgICAgICAgJ0luc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3InOiBbJyJJbnNw
ZWN0b3JFeHRlbnNpb25UeXBlcy5oIiddLAogICAgICAgICAnSW5zcGVjdG9yOjpGcm9udGVuZENo
YW5uZWw6OkNvbm5lY3Rpb25UeXBlJzogWyc8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsLmg+J10sCiAgICAgICAgICdJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldFR5cGUn
OiBbJzxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JUYXJnZXQuaD4nXSwKLSAgICAgICAgJ1dlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRGlzcGxh
eUxpc3QuaD4nXSwKKyAgICAgICAgJ0pTQzo6TWVzc2FnZUxldmVsJzogWyc8SmF2YVNjcmlwdENv
cmUvQ29uc29sZVR5cGVzLmg+J10sCisgICAgICAgICdKU0M6Ok1lc3NhZ2VTb3VyY2UnOiBbJzxK
YXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKKyAgICAgICAgJ01hY2hTZW5kUmlnaHQn
OiBbJzx3dGYvTWFjaFNlbmRSaWdodC5oPiddLAogICAgICAgICAnTWVkaWFUaW1lJzogWyc8d3Rm
L01lZGlhVGltZS5oPiddLAogICAgICAgICAnTW9ub3RvbmljVGltZSc6IFsnPHd0Zi9Nb25vdG9u
aWNUaW1lLmg+J10sCisgICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQu
aD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZSc6IFsnPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpC
bGVuZEZhY3Rvcic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3IuaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCbGVuZE9wZXJhdGlvbic6IFsnPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BV
OjpCdWZmZXJCaW5kaW5nVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVy
QmluZGluZ1R5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zm
c2V0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisg
ICAgICAgICdQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2VGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQnVmZmVyVXNhZ2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDYW52
YXNDb21wb3NpdGluZ0FscGhhTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2Fu
dmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDb2xv
cldyaXRlRmxhZ3MnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yV3JpdGUuaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24nOiBbJzxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNvbXBhcmVGdW5jdGlvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDb21w
dXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6
Q3VsbE1vZGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmg+J10sCisg
ICAgICAgICdQQUw6OldlYkdQVTo6RGVwdGhCaWFzJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RGV2aWNlTG9z
dFJlYXNvbic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyJzogWyc8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkZl
YXR1cmVOYW1lJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGZWF0dXJlTmFtZS5oPidd
LAorICAgICAgICAnUEFMOjpXZWJHUFU6OkZpbHRlck1vZGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZpbHRlck1vZGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpGbGFnc0Nv
bnN0YW50JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10s
CisgICAgICAgICdQQUw6OldlYkdQVTo6RnJvbnRGYWNlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVGcm9udEZhY2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpJbmRleDMyJzog
Wyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAg
ICdQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUluZGV4Rm9ybWF0Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5h
dGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpMb2FkT3AnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUxvYWRPcC5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6Ok1hcE1vZGVGbGFncyc6IFsnPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UGlwZWxpbmVTdGF0aXN0aWNOYW1lLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6UG93ZXJQ
cmVmZXJlbmNlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2Uu
aD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZSc6IFsnPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaD4nXSwKKyAgICAg
ICAgJ1BBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neSc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpR
dWVyeVR5cGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oPiddLAor
ICAgICAgICAnUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbic6IFsnPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+J10s
CisgICAgICAgICdQQUw6OldlYkdQVTo6U2FtcGxlTWFzayc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlNhbXBs
ZXJCaW5kaW5nVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRp
bmdUeXBlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFncyc6IFsn
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyU3RhZ2UuaD4nXSwKKyAgICAgICAgJ1BB
TDo6V2ViR1BVOjpTaWduZWRPZmZzZXQzMic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
SW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlNpemUzMic6IFsnPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFM
OjpXZWJHUFU6OlNpemU2NCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxU
eXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24nOiBbJzxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaD4nXSwKKyAgICAgICAg
J1BBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVy
ZUFjY2Vzcyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nl
c3MuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTdG9yZU9wJzogWyc8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVTdG9yZU9wLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVy
ZUFzcGVjdCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oPidd
LAorICAgICAgICAnUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24nOiBbJzxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
Rm9ybWF0Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGUnOiBb
JzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg+J10sCisgICAg
ICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZVVzYWdlRmxhZ3MnOiBbJzxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVRleHR1cmVVc2FnZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmll
d0RpbWVuc2lvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdCc6IFsn
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg+J10sCisgICAgICAgICdQ
QUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVZlcnRleFN0ZXBNb2RlLmg+J10sCisgICAgICAgICdQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1l
RGF0YSc6IFsnPFdlYkNvcmUvUGxhdGZvcm1YUi5oPiddLAogICAgICAgICAnU2Vjb25kcyc6IFsn
PHd0Zi9TZWNvbmRzLmg+J10sCisgICAgICAgICdTdHJpbmcnOiBbJzx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4nXSwKICAgICAgICAgJ1VSTCc6IFsnPHd0Zi9VUkxIYXNoLmg+J10sCiAgICAgICAgICdX
YWxsVGltZSc6IFsnPHd0Zi9XYWxsVGltZS5oPiddLAotICAgICAgICAnU3RyaW5nJzogWyc8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+J10sCi0gICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9T
ZXNzaW9uSUQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkFyY0RhdGEnOiBbJzxXZWJDb3JlL0lu
bGluZVBhdGhEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3Mn
OiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkJlemll
ckN1cnZlRGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERhdGEuaD4nXSwKQEAgLTcwNCwxMiAr
NzUzLDE0IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6
Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUv
RE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JT
cGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9EaXNwbGF5TGlzdC5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUnOiBbJzxXZWJD
b3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JXb3Jr
ZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJzogWyc8V2ViQ29yZS9EcmFnRGF0YS5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29yZS9E
cmFnQWN0aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ09wZXJhdGlvbic6IFsnPFdl
YkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdTb3VyY2VBY3Rp
b24nOiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpEeW5h
bWljUmFuZ2VNb2RlJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSc6IFsnPFdlYkNvcmUvR2FtZXBhZFBy
b3ZpZGVyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJzog
Wyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPiddLApAQCAt
NzM2LDggKzc4Nyw4IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2Vi
Q29yZTo6TGluZUpvaW4nOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlw
ZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMn
OiBbJzxXZWJDb3JlL01lZGlhUGxheWVyLmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQnOiBbJzxXZWJDb3JlL01l
ZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5
JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4n
XSwKQEAgLTc5NSw5ICs4NDYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAg
ICAgJ1dlYkNvcmU6OldlYkdMTG9hZFBvbGljeSc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBl
cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyc6IFsnPFdlYkNv
cmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRl
Q2hhbmdlSUQnOiBbJyJEcmF3aW5nQXJlYUluZm8uaCInXSwKLSAgICAgICAgJ1dlYktpdDo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2VJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgiJ10s
CiAgICAgICAgICdXZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJRC5oIiddLAog
ICAgICAgICAnV2ViS2l0OjpBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEnOiBbJyJBcHBQcml2
YWN5UmVwb3J0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
SWRlbnRpZmllcic6IFsnIklkZW50aWZpZXJUeXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKICAgICAgICAg
J1dlYktpdDo6Q2FsbERvd25sb2FkRGlkU3RhcnQnOiBbJyJEb3dubG9hZE1hbmFnZXIuaCInXSwK
ICAgICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6IFsnIkNvbnRlbnRXb3Js
ZFNoYXJlZC5oIiddLApAQCAtODE4LDE1ICs4NjksNzkgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUo
dHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OlNlbGVjdGlvblRvdWNoJzogWyciR2VzdHVyZVR5cGVz
LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OlRhcElkZW50aWZpZXInOiBbJyJJZGVudGlmaWVyVHlw
ZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6VGV4dENoZWNrZXJSZXF1ZXN0SUQnOiBbJyJJZGVu
dGlmaWVyVHlwZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNj
cmlwdG9yJzogWyciV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5JzogWyciV2ViR1BVQmluZEdyb3VwRW50cnkuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJzog
WyciV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cExheW91dEVudHJ5JzogWyciV2ViR1BVQmluZEdyb3VwTGF5b3V0
RW50cnkuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCbGVuZENvbXBvbmVudCc6IFsn
IldlYkdQVUJsZW5kQ29tcG9uZW50LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Qmxl
bmRTdGF0ZSc6IFsnIldlYkdQVUJsZW5kU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpCdWZmZXJCaW5kaW5nJzogWyciV2ViR1BVQnVmZmVyQmluZGluZy5oIiddLAorICAgICAg
ICAnV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdMYXlvdXQnOiBbJyJXZWJHUFVCdWZmZXJC
aW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3Jp
cHRvcic6IFsnIldlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uJzogWyciV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlv
bi5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbG9yJzogWyciV2ViR1BVQ29sb3Iu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlJzogWyciV2Vi
R1BVQ29sb3JUYXJnZXRTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbW1h
bmRCdWZmZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3InOiBb
JyJXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2UnOiBbJyJXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2Uu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3InOiBb
JyJXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyc6IFsnIldlYkdQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wV3JpdGVzLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvcic6IFsnIldlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0JzogWyci
V2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkNvbnZlcnRUb0JhY2tpbmdDb250ZXh0JzogWyciV2ViR1BVQ29udmVydFRvQmFja2lu
Z0NvbnRleHQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpEZXB0aFN0ZW5jaWxTdGF0
ZSc6IFsnIldlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6Oldl
YkdQVTo6RGV2aWNlRGVzY3JpcHRvcic6IFsnIldlYkdQVURldmljZURlc2NyaXB0b3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpFcnJvcic6IFsnIldlYkdQVUVycm9yLmgiJ10sCisg
ICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0QnOiBbJyJXZWJHUFVFeHRlbnQzRC5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQn
OiBbJyJXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcic6IFsnIldlYkdQVUV4dGVy
bmFsVGV4dHVyZURlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpGcmFn
bWVudFN0YXRlJzogWyciV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OklkZW50aWZpZXInOiBbJyJXZWJHUFVJZGVudGlmaWVyLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyJzogWyciV2ViR1BVSW1hZ2VDb3B5QnVm
ZmVyLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZSc6IFsnIldlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaCInXSwKKyAgICAgICAgJ1dlYktp
dDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJzogWyciV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQnOiBb
JyJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgiJ10sCisgICAgICAgICdXZWJLaXQ6Oldl
YkdQVTo6SW1hZ2VEYXRhTGF5b3V0JzogWyciV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmgiJ10sCisg
ICAgICAgICdXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0ZSc6IFsnIldlYkdQVU11bHRp
c2FtcGxlU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpPYmplY3REZXNjcmlw
dG9yQmFzZSc6IFsnIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6T3JpZ2luMkQnOiBbJyJXZWJHUFVPcmlnaW4yRC5oIiddLAorICAgICAg
ICAnV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjNEJzogWyciV2ViR1BVT3JpZ2luM0QuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpPdXRPZk1lbW9yeUVycm9yJzogWyciV2ViR1BVT3V0T2ZN
ZW1vcnlFcnJvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UnOiBbJyJXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJzogWyciV2ViR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UHJp
bWl0aXZlU3RhdGUnOiBbJyJXZWJHUFVQcmltaXRpdmVTdGF0ZS5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OlByb2dyYW1tYWJsZVN0YWdlJzogWyciV2ViR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2UuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3InOiBb
JyJXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVEZXNjcmlwdG9yJzogWyciV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRv
ci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yJzogWyciV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50JzogWyciV2Vi
R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50JzogWyciV2ViR1BVUmVuZGVyUGFz
c0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpS
ZW5kZXJQYXNzRGVzY3JpcHRvcic6IFsnIldlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFzc0xheW91dCc6IFsnIldlYkdQVVJl
bmRlclBhc3NMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNz
VGltZXN0YW1wV3JpdGVzJzogWyciV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcic6IFsn
IldlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyc6IFsnIldlYkdQVVJlcXVlc3RBZGFwdGVyT3B0
aW9ucy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nTGF5b3V0
JzogWyciV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvcic6IFsnIldlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgi
J10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvcic6IFsn
IldlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpTdGVuY2lsRmFjZVN0YXRlJzogWyciV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dCc6IFsn
IldlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJzogWyciV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMnOiBbJyJXZWJH
UFVTdXBwb3J0ZWRMaW1pdHMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpUZXh0dXJl
QmluZGluZ0xheW91dCc6IFsnIldlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0b3InOiBbJyJXZWJHUFVUZXh0dXJl
RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVz
Y3JpcHRvcic6IFsnIldlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oIiddLAorICAgICAgICAn
V2ViS2l0OjpXZWJHUFU6OlZhbGlkYXRpb25FcnJvcic6IFsnIldlYkdQVVZhbGlkYXRpb25FcnJv
ci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZSc6IFsnIldl
YkdQVVZlcnRleEF0dHJpYnV0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlZlcnRl
eEJ1ZmZlckxheW91dCc6IFsnIldlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oIiddLAorICAgICAg
ICAnV2ViS2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlJzogWyciV2ViR1BVVmVydGV4U3RhdGUuaCIn
XSwKICAgICAgICAgJ3N0cnVjdCBXZWJDb3JlOjpDb29raWUnOiBbJzxXZWJDb3JlL0Nvb2tpZS5o
PiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JzogWyc8V2ViQ29y
ZS9FbGVtZW50Q29udGV4dC5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OlZpZGVvUGxh
eWJhY2tRdWFsaXR5TWV0cmljcyc6IFsnPFdlYkNvcmUvVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzLmg+J10sCisgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxl
ckRhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKICAgICAg
ICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRhJzogWyciV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpXZWJVc2Vy
U3R5bGVTaGVldERhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIn
XSwKLSAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyRGF0YSc6
IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLAogICAgICAgICAnd2Vi
cnRjOjpXZWJLaXRFbmNvZGVkRnJhbWVJbmZvJzogWyc8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0
RW5jb2Rlci5oPicsICc8V2ViQ29yZS9MaWJXZWJSVENFbnVtVHJhaXRzLmg+J10sCi0gICAgICAg
ICdQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YSc6IFsnPFdlYkNvcmUvUGxhdGZvcm1YUi5o
PiddLAotICAgICAgICAnV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZSc6IFsnPFdlYkNvcmUvUGxh
dGZvcm1TY3JlZW4uaD4nXSwKICAgICB9CiAKICAgICBoZWFkZXJzID0gW10KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5o
CmluZGV4IDBlMGViYzQ0NzYwZGU5NzI3OTkwYmM5NzFiYTEzMzg5NDY2MjhhZTMuLmJjY2U1Yjkz
ODZkODlmN2MwYTEzYzhjYTUzZGQ5M2JmZTI1ZDNhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaApAQCAtMzUs
NiArMzUsMzMgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBCaW5kR3JvdXBE
ZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBXZWJHUFVJZGVu
dGlmaWVyIGJpbmRHcm91cExheW91dDsKICAgICBWZWN0b3I8QmluZEdyb3VwRW50cnk+IGVudHJp
ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25z
dCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5k
R3JvdXBMYXlvdXQ7CisgICAgICAgIGVuY29kZXIgPDwgZW50cmllczsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBEZXNj
cmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAg
ICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERl
c2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGJpbmRHcm91cExheW91dDsKKyAgICAg
ICAgZGVjb2RlciA+PiBiaW5kR3JvdXBMYXlvdXQ7CisgICAgICAgIGlmICghYmluZEdyb3VwTGF5
b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxCaW5kR3JvdXBFbnRyeT4+IGVudHJpZXM7CisgICAgICAgIGRlY29kZXIg
Pj4gZW50cmllczsKKyAgICAgICAgaWYgKCFlbnRyaWVzKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0
b3JCYXNlKSwgV1RGTW92ZSgqYmluZEdyb3VwTGF5b3V0KSwgV1RGTW92ZSgqZW50cmllcykgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCmluZGV4IGYz
OGRkNTA2Nzc2NDkyMjZjNGQ3YTAzMGM5ZGU5Y2NiZDZkZDY2MzMuLmQyZjQ5ZDUwODQzN2RiYzlk
ZmJhZDdiZWQ4NjExMzFhYzdkNGU4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCkBAIC00NCw2ICs0NCw1MyBAQCBzdHJ1Y3Qg
QmluZEdyb3VwRW50cnkgewogICAgIEJ1ZmZlckJpbmRpbmcgYnVmZmVyQmluZGluZzsKICAgICBX
ZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgQmluZGluZ1Jlc291cmNlVHlwZSB0eXBl
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgYmluZGluZzsKKyAgICAgICAg
ZW5jb2RlciA8PCBidWZmZXJCaW5kaW5nOworICAgICAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7
CisgICAgICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBFbnRyeT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bmRleDMyPiBiaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+IGJpbmRpbmc7CisgICAgICAgIGlm
ICghYmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxCdWZmZXJCaW5kaW5nPiBidWZmZXJCaW5kaW5nOworICAgICAgICBkZWNv
ZGVyID4+IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGlmICghYnVmZmVyQmluZGluZykKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJH
UFVJZGVudGlmaWVyPiBpZGVudGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7
CisgICAgICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxCaW5kaW5nUmVzb3VyY2VUeXBlPiB0eXBlOwor
ICAgICAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiaW5k
aW5nKSwgV1RGTW92ZSgqYnVmZmVyQmluZGluZyksIFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZN
b3ZlKCp0eXBlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
S2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZSwK
KyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OlNhbXBsZXIsCisg
ICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBlOjpUZXh0dXJlVmlldywK
KyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OkJ1ZmZlckJpbmRp
bmcsCisgICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBlOjpFeHRlcm5h
bFRleHR1cmUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuaAppbmRleCA2OGJhYmVkYmI2NTM2ZDRiZDQwYjdkNTNiNGFkOTQ2NWIzN2Y2OWVi
Li5iNGYwY2I0YzY2MmVmM2FmMmRhNTU4MjA5ZjJjNzA4YTUwOWM0NTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlv
dXREZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiAKIHN0cnVjdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERl
c2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8QmluZEdyb3VwTGF5b3V0RW50cnk+IGVudHJpZXM7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBP
YmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBlbnRyaWVz
OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEJpbmRHcm91cExheW91dERlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0
RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7
CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEJpbmRHcm91cExh
eW91dEVudHJ5Pj4gZW50cmllczsKKyAgICAgICAgZGVjb2RlciA+PiBlbnRyaWVzOworICAgICAg
ICBpZiAoIWVudHJpZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpl
bnRyaWVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXRFbnRyeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dEVudHJ5LmgKaW5kZXggNDAyYTNmMDkxOTFlODU4ZTU0ZmIzZWNhNzQ2YjlkMzg5ZDNi
ZjlmMC4uYjgzMGE1OTE0ODk2ZTVkZjcyNTJmZjRkMGM2MzIwNWM1OTdkZGMxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91
dEVudHJ5LmgKQEAgLTQ1LDYgKzQ1LDU3IEBAIHN0cnVjdCBCaW5kR3JvdXBMYXlvdXRFbnRyeSB7
CiAgICAgc3RkOjpvcHRpb25hbDxUZXh0dXJlQmluZGluZ0xheW91dD4gdGV4dHVyZTsKICAgICBz
dGQ6Om9wdGlvbmFsPFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4gc3RvcmFnZVRleHR1cmU7
CiAgICAgc3RkOjpvcHRpb25hbDxFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0PiBleHRlcm5h
bFRleHR1cmU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5kaW5nOwor
ICAgICAgICBlbmNvZGVyIDw8IHZpc2liaWxpdHk7CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVy
OworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZXI7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dHVy
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBzdG9yYWdlVGV4dHVyZTsKKyAgICAgICAgZW5jb2RlciA8
PCBleHRlcm5hbFRleHR1cmU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8QmluZEdyb3VwTGF5b3V0RW50cnk+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW5k
ZXgzMj4gYmluZGluZzsKKyAgICAgICAgZGVjb2RlciA+PiBiaW5kaW5nOworICAgICAgICBpZiAo
IWJpbmRpbmcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNoYWRlclN0YWdlRmxhZ3M+IHZpc2liaWxpdHk7Cisg
ICAgICAgIGRlY29kZXIgPj4gdmlzaWJpbGl0eTsKKyAgICAgICAgaWYgKCF2aXNpYmlsaXR5KQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8QnVmZmVyQmluZGluZ0xheW91dD4+IGJ1ZmZlcjsKKyAgICAgICAgZGVj
b2RlciA+PiBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8U2Ft
cGxlckJpbmRpbmdMYXlvdXQ+PiBzYW1wbGVyOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZXI7
CisgICAgICAgIGlmICghc2FtcGxlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5
b3V0Pj4gdGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiB0ZXh0dXJlOworICAgICAgICBpZiAo
IXRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ+PiBz
dG9yYWdlVGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiBzdG9yYWdlVGV4dHVyZTsKKyAgICAg
ICAgaWYgKCFzdG9yYWdlVGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQ+PiBleHRlcm5hbFRleHR1cmU7CisgICAgICAgIGRlY29kZXIgPj4gZXh0ZXJu
YWxUZXh0dXJlOworICAgICAgICBpZiAoIWV4dGVybmFsVGV4dHVyZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiaW5kaW5n
KSwgV1RGTW92ZSgqdmlzaWJpbGl0eSksIFdURk1vdmUoKmJ1ZmZlciksIFdURk1vdmUoKnNhbXBs
ZXIpLCBXVEZNb3ZlKCp0ZXh0dXJlKSwgV1RGTW92ZSgqc3RvcmFnZVRleHR1cmUpLCBXVEZNb3Zl
KCpleHRlcm5hbFRleHR1cmUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJsZW5kQ29tcG9uZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxl
bmRDb21wb25lbnQuaAppbmRleCA5NGFjNWEyNDIwYjIzODMwNmZkNTU5NmY1NGY1YzY4YjJiNzZi
YjIyLi5lZWJmOTNlNzRiMmI3MWM1ZDZlZDQ2YTA3NjgxMDc5OGFmY2QwOGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaApAQCAt
MzQsNiArMzQsMzMgQEAgc3RydWN0IEJsZW5kQ29tcG9uZW50IHsKICAgICBQQUw6OldlYkdQVTo6
QmxlbmRPcGVyYXRpb24gb3BlcmF0aW9uOwogICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3RvciBz
cmNGYWN0b3I7CiAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yIGRzdEZhY3RvcjsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9wZXJhdGlvbjsKKyAgICAgICAgZW5jb2Rl
ciA8PCBzcmNGYWN0b3I7CisgICAgICAgIGVuY29kZXIgPDwgZHN0RmFjdG9yOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJsZW5kQ29t
cG9uZW50PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiBvcGVyYXRpb247CisgICAgICAgIGRl
Y29kZXIgPj4gb3BlcmF0aW9uOworICAgICAgICBpZiAoIW9wZXJhdGlvbikKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6QmxlbmRGYWN0b3I+IHNyY0ZhY3RvcjsKKyAgICAgICAgZGVjb2RlciA+PiBzcmNGYWN0b3I7
CisgICAgICAgIGlmICghc3JjRmFjdG9yKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4gZHN0
RmFjdG9yOworICAgICAgICBkZWNvZGVyID4+IGRzdEZhY3RvcjsKKyAgICAgICAgaWYgKCFkc3RG
YWN0b3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVy
biB7IHsgV1RGTW92ZSgqb3BlcmF0aW9uKSwgV1RGTW92ZSgqc3JjRmFjdG9yKSwgV1RGTW92ZSgq
ZHN0RmFjdG9yKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCmlu
ZGV4IGE0MWY1MTdiYzEyYzkxN2E5MmEyZWUxOWE2NDM4MjNiNjRhYTJmYmYuLjllODRiYWNlOWVh
OTliMzA1YTM2OTA2MmVlYmE2NTlkNjI5ZThmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaApAQCAtMzIsNiArMzIsMjcgQEAgbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBCbGVuZFN0YXRlIHsKICAgICBCbGVuZENvbXBvbmVu
dCBjb2xvcjsKICAgICBCbGVuZENvbXBvbmVudCBhbHBoYTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IGNvbG9yOworICAgICAgICBlbmNvZGVyIDw8IGFscGhhOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJsZW5k
U3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxCbGVuZENvbXBvbmVudD4gY29sb3I7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3I7Cisg
ICAgICAgIGlmICghY29sb3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8QmxlbmRDb21wb25lbnQ+IGFscGhhOworICAgICAgICBkZWNv
ZGVyID4+IGFscGhhOworICAgICAgICBpZiAoIWFscGhhKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvbG9yKSwgV1RGTW92
ZSgqYWxwaGEpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJp
bmRpbmcuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5n
LmgKaW5kZXggZDQ1OTgxZjliZDE4NTE0Yjc0MjliZWIxMmUzNDAzOWE1OTVhZjg3YS4uMzE2YjQx
NjhhMWQ5YzUxMjI4NGRhM2VmNmE2MjBhMjczNzg1OGIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCkBAIC0zNiw2ICszNiwzMyBA
QCBzdHJ1Y3QgQnVmZmVyQmluZGluZyB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBidWZmZXI7CiAg
ICAgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6U2l6ZTY0PiBzaXplOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
YnVmZmVyOworICAgICAgICBlbmNvZGVyIDw8IG9mZnNldDsKKyAgICAgICAgZW5jb2RlciA8PCBz
aXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEJ1ZmZlckJpbmRpbmc+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiBidWZmZXI7CisgICAgICAgIGRl
Y29kZXIgPj4gYnVmZmVyOworICAgICAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6
ZTY0PiBvZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2Zmc2V0OworICAgICAgICBpZiAoIW9m
ZnNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+PiBzaXplOworICAgICAg
ICBkZWNvZGVyID4+IHNpemU7CisgICAgICAgIGlmICghc2l6ZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpidWZmZXIpLCBX
VEZNb3ZlKCpvZmZzZXQpLCBXVEZNb3ZlKCpzaXplKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCmluZGV4IGYxZjAxNjVjNzFkY2Jh
YmMxM2Y0ZTI5MjUyNTZiNmMxNjRjMWJmZTguLmY5ZDExMGU0YjBiYmU2NWIzZWY1YTI2ZGRmMWNl
MzJkNDRiZGYyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaApAQCAtMzQsNiArMzQsMzMgQEAgc3RydWN0IEJ1
ZmZlckJpbmRpbmdMYXlvdXQgewogICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSB0
eXBlOwogICAgIGJvb2wgaGFzRHluYW1pY09mZnNldDsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0
IG1pbkJpbmRpbmdTaXplOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdHlw
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBoYXNEeW5hbWljT2Zmc2V0OworICAgICAgICBlbmNvZGVy
IDw8IG1pbkJpbmRpbmdTaXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmdMYXlvdXQ+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVm
ZmVyQmluZGluZ1R5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAg
aWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IGhhc0R5bmFtaWNPZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4g
aGFzRHluYW1pY09mZnNldDsKKyAgICAgICAgaWYgKCFoYXNEeW5hbWljT2Zmc2V0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTaXplNjQ+IG1pbkJpbmRpbmdTaXplOworICAgICAgICBkZWNvZGVyID4+IG1pbkJp
bmRpbmdTaXplOworICAgICAgICBpZiAoIW1pbkJpbmRpbmdTaXplKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnR5cGUpLCBX
VEZNb3ZlKCpoYXNEeW5hbWljT2Zmc2V0KSwgV1RGTW92ZSgqbWluQmluZGluZ1NpemUpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXgg
NmM3YTE2MGVhZDk0MWNjMDNiNzQ0ZDlhMjc0MWM4YmEyODE3ZTk1ZC4uOWM1MzQ0YTI0YmYwZDg5
ZDYxZjQ4ZDExZjZmNTc5NDVhOGYwMWMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zNSw2ICszNSwzOSBAQCBz
dHJ1Y3QgQnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAg
ICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplOwogICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJVc2Fn
ZUZsYWdzIHVzYWdlOwogICAgIGJvb2wgbWFwcGVkQXRDcmVhdGlvbjsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JC
YXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IHNpemU7CisgICAgICAgIGVuY29kZXIg
PDwgdXNhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWFwcGVkQXRDcmVhdGlvbjsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCdWZmZXJE
ZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAg
ICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVj
dERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemU7CisgICAgICAgIGRl
Y29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJV
c2FnZUZsYWdzPiB1c2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiB1c2FnZTsKKyAgICAgICAgaWYg
KCF1c2FnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBtYXBwZWRBdENyZWF0aW9uOworICAgICAgICBkZWNvZGVyID4+IG1h
cHBlZEF0Q3JlYXRpb247CisgICAgICAgIGlmICghbWFwcGVkQXRDcmVhdGlvbikKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpv
YmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnNpemUpLCBXVEZNb3ZlKCp1c2FnZSksIFdU
Rk1vdmUoKm1hcHBlZEF0Q3JlYXRpb24pIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKaW5kZXggYjg3NjdmMGExYjA1ODdlZmU4MWMx
OWE5YzYxOTEzMTk5M2YwNzk5Zi4uODRiNGIwOTc1YThkNzE5NDk0ODg2NWFhZTcxN2VlY2UxODYw
YjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZh
c0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q2FudmFzQ29uZmlndXJhdGlvbi5oCkBAIC00Nyw2ICs0Nyw1MSBAQCBzdHJ1Y3QgQ2FudmFzQ29u
ZmlndXJhdGlvbiB7CiAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9y
U3BhY2U7CiAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlIGNvbXBv
c2l0aW5nQWxwaGFNb2RlOwogICAgIHN0ZDo6b3B0aW9uYWw8RXh0ZW50M0Q+IHNpemU7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBkZXZpY2U7CisgICAgICAgIGVuY29kZXIg
PDwgZm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8IHVzYWdlOworICAgICAgICBlbmNvZGVyIDw8
IGNvbG9yU3BhY2U7CisgICAgICAgIGVuY29kZXIgPDwgY29tcG9zaXRpbmdBbHBoYU1vZGU7Cisg
ICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDYW52YXNDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRp
Zmllcj4gZGV2aWNlOworICAgICAgICBkZWNvZGVyID4+IGRldmljZTsKKyAgICAgICAgaWYgKCFk
ZXZpY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVj
b2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFRleHR1cmVVc2FnZUZsYWdz
PiB1c2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiB1c2FnZTsKKyAgICAgICAgaWYgKCF1c2FnZSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2U+IGNvbG9yU3BhY2U7CisgICAgICAg
IGRlY29kZXIgPj4gY29sb3JTcGFjZTsKKyAgICAgICAgaWYgKCFjb2xvclNwYWNlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4gY29tcG9zaXRpbmdBbHBoYU1vZGU7
CisgICAgICAgIGRlY29kZXIgPj4gY29tcG9zaXRpbmdBbHBoYU1vZGU7CisgICAgICAgIGlmICgh
Y29tcG9zaXRpbmdBbHBoYU1vZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxFeHRlbnQzRD4+IHNpemU7Cisg
ICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmRldmlj
ZSksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKnVzYWdlKSwgV1RGTW92ZSgqY29sb3JTcGFj
ZSksIFdURk1vdmUoKmNvbXBvc2l0aW5nQWxwaGFNb2RlKSwgV1RGTW92ZSgqc2l6ZSkgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oCmluZGV4IDA3NTNjYzZlMDZkZDk4Y2M3YzIyYjYx
NmRlZGNiZmZmNzdlNGJiZDkuLjRlMGY0MzlkZmY1YmE4YTI0NjE1YjBiMzc4ZDExNDFhODU4YTc5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oCkBAIC0zNiw2
ICszNiwzOSBAQCBzdHJ1Y3QgQ29sb3JEaWN0IHsKICAgICBkb3VibGUgZzsKICAgICBkb3VibGUg
YjsKICAgICBkb3VibGUgYTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHI7
CisgICAgICAgIGVuY29kZXIgPDwgZzsKKyAgICAgICAgZW5jb2RlciA8PCBiOworICAgICAgICBl
bmNvZGVyIDw8IGE7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q29sb3JEaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiByOworICAgICAgICBkZWNvZGVyID4+IHI7
CisgICAgICAgIGlmICghcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGc7CisgICAgICAgIGRlY29kZXIgPj4gZzsKKyAg
ICAgICAgaWYgKCFnKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gYjsKKyAgICAgICAgZGVjb2RlciA+PiBiOworICAgICAg
ICBpZiAoIWIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPiBhOworICAgICAgICBkZWNvZGVyID4+IGE7CisgICAgICAgIGlm
ICghYSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpyKSwgV1RGTW92ZSgqZyksIFdURk1vdmUoKmIpLCBXVEZNb3ZlKCphKSB9
IH07CisgICAgfQogfTsKIAogdXNpbmcgQ29sb3IgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPGRvdWJs
ZT4sIENvbG9yRGljdD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbG9yVGFyZ2V0U3RhdGUuaAppbmRleCBmYmVlNzgxODRhZjNmMDlmNWE5ZjhiN2NmYjBh
N2Y3ZjRjOWEzZmI3Li4yZTMwM2M0N2UwNTIxYTEyOTQ0MTRiMDY5Y2ZlMjM3OTJkM2U2Zjk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdl
dFN0YXRlLmgKQEAgLTM3LDYgKzM3LDMzIEBAIHN0cnVjdCBDb2xvclRhcmdldFN0YXRlIHsKIAog
ICAgIHN0ZDo6b3B0aW9uYWw8QmxlbmRTdGF0ZT4gYmxlbmQ7CiAgICAgUEFMOjpXZWJHUFU6OkNv
bG9yV3JpdGVGbGFncyB3cml0ZU1hc2s7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgYmxlbmQ7CisgICAgICAgIGVuY29kZXIg
PDwgd3JpdGVNYXNrOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENvbG9yVGFyZ2V0U3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dD4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3Jt
YXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxCbGVuZFN0YXRlPj4gYmxlbmQ7CisgICAgICAgIGRlY29kZXIg
Pj4gYmxlbmQ7CisgICAgICAgIGlmICghYmxlbmQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9yV3JpdGVG
bGFncz4gd3JpdGVNYXNrOworICAgICAgICBkZWNvZGVyID4+IHdyaXRlTWFzazsKKyAgICAgICAg
aWYgKCF3cml0ZU1hc2spCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqYmxlbmQpLCBXVEZNb3Zl
KCp3cml0ZU1hc2spIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1h
bmRCdWZmZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCA2ZGM2M2MzZWY0YjU2NTUxYTZkMjYzYTZm
YmE2ODdiZGY2MTk0OTk2Li5hZmI2MDgzYzA1NDUxZjI1M2M3ZDJiNWNiNmE0YmViNWVlZjJjM2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1
ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBDb21tYW5kQnVmZmVyRGVzY3JpcHRvciA6IHB1Ymxp
YyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAg
fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAg
IGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2Up
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVz
Y3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvci5oCmluZGV4IGYwN2E1ZjAwNzMxOWFjOTdkMTFjMDU1ODE0NDZjMTBlODNl
MzA5ZTYuLjMzYmViMDllNmQ1ZTA0NzE2ZmQzYjhkYzZhYjUwYzhlNzg2MmE1ZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2Ny
aXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVu
Y29kZXJEZXNjcmlwdG9yLmgKQEAgLTMwLDYgKzMwLDIwIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCiBzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVj
dERlc2NyaXB0b3JCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21tYW5kRW5j
b2RlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7
CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICgh
b2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ4ZWE0ZGI1NGFjMjI4YWI4N2MzYjk4ZjQ1ZGIzODcxZWZhMGU5MjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRp
b25NZXNzYWdlLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0IENvbXBpbGF0aW9uTWVz
c2FnZSB7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9u
TWVzc2FnZVR5cGUgdHlwZTsKKyAgICB1aW50NjRfdCBsaW5lTnVtOworICAgIHVpbnQ2NF90IGxp
bmVQb3M7CisgICAgdWludDY0X3Qgb2Zmc2V0OworICAgIHVpbnQ2NF90IGxlbmd0aDsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG1lc3NhZ2U7CisgICAgICAgIGVuY29kZXIg
PDwgdHlwZTsKKyAgICAgICAgZW5jb2RlciA8PCBsaW5lTnVtOworICAgICAgICBlbmNvZGVyIDw8
IGxpbmVQb3M7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8
IGxlbmd0aDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxDb21waWxhdGlvbk1lc3NhZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG1lc3NhZ2U7CisgICAgICAgIGRl
Y29kZXIgPj4gbWVzc2FnZTsKKyAgICAgICAgaWYgKCFtZXNzYWdlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpD
b21waWxhdGlvbk1lc3NhZ2VUeXBlPiB0eXBlOworICAgICAgICBkZWNvZGVyID4+IHR5cGU7Cisg
ICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGluZU51bTsKKyAgICAgICAgZGVjb2RlciA+
PiBsaW5lTnVtOworICAgICAgICBpZiAoIWxpbmVOdW0pCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGxpbmVQb3M7Cisg
ICAgICAgIGRlY29kZXIgPj4gbGluZVBvczsKKyAgICAgICAgaWYgKCFsaW5lUG9zKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBvZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2Zmc2V0OworICAgICAgICBpZiAoIW9m
ZnNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gbGVuZ3RoOworICAgICAgICBkZWNvZGVyID4+IGxlbmd0aDsKKyAg
ICAgICAgaWYgKCFsZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbWVzc2FnZSksIFdURk1vdmUoKnR5cGUpLCBXVEZN
b3ZlKCpsaW5lTnVtKSwgV1RGTW92ZSgqbGluZVBvcyksIFdURk1vdmUoKm9mZnNldCksIFdURk1v
dmUoKmxlbmd0aCkgfSB9OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0
ZVBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
cHV0ZVBhc3NEZXNjcmlwdG9yLmgKaW5kZXggOTU3ZTZlNDYzM2I3ODY1Y2EwNzE2MDQ3ZWI3Yzkx
MTk4NmU2YmEyOC4uN2JiM2UzMThlYmVjMzNlYzhmNzhhODNmMTZkNzU1YzNkMjE0MWNkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRl
UGFzc0Rlc2NyaXB0b3IuaApAQCAtMzIsNiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKIAogc3RydWN0IENvbXB1dGVQYXNzRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNj
cmlwdG9yQmFzZSB7CiAgICAgQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgdGltZXN0YW1wV3Jp
dGVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29u
c3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgdGlt
ZXN0YW1wV3JpdGVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQYXNzRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNl
PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlw
dG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxDb21wdXRlUGFz
c1RpbWVzdGFtcFdyaXRlcz4gdGltZXN0YW1wV3JpdGVzOworICAgICAgICBkZWNvZGVyID4+IHRp
bWVzdGFtcFdyaXRlczsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZXMpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCp0aW1lc3RhbXBXcml0ZXMpIH0gfTsKKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZXMuaAppbmRleCAxYTA2ZjhmMDI1M2NmMjZmZmZmMGNkYjI0NWRjMjA2ZDQ4NjMzODk1Li40
ZjIyZDlhYWIxZGI2MjhiZjMxMzYyMmM4NDk4YzZhODRhYzI3ZDNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZXMuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IENvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGUgewogICAgIFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQ7CiAgICAgUEFMOjpXZWJH
UFU6OlNpemUzMiBxdWVyeUluZGV4OwogICAgIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVz
dGFtcExvY2F0aW9uIGxvY2F0aW9uOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgcXVlcnlTZXQ7CisgICAgICAgIGVuY29kZXIgPDwgcXVlcnlJbmRleDsKKyAgICAgICAgZW5j
b2RlciA8PCBsb2NhdGlvbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRp
Zmllcj4gcXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gcXVlcnlTZXQ7CisgICAgICAgIGlm
ICghcXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gcXVlcnlJbmRleDsKKyAgICAgICAg
ZGVjb2RlciA+PiBxdWVyeUluZGV4OworICAgICAgICBpZiAoIXF1ZXJ5SW5kZXgpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24+IGxvY2F0aW9uOworICAgICAgICBk
ZWNvZGVyID4+IGxvY2F0aW9uOworICAgICAgICBpZiAoIWxvY2F0aW9uKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnF1ZXJ5
U2V0KSwgV1RGTW92ZSgqcXVlcnlJbmRleCksIFdURk1vdmUoKmxvY2F0aW9uKSB9IH07CisgICAg
fQogfTsKIAogdXNpbmcgQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8Q29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaAppbmRleCBjOTMz
MjZhOWU5Mzc1ZGIzYjUwODA5OTYxNmNjMTM2OTA2YzI5MzNiLi5jZGQ2NWQwOTVmNjhlNWVjYmVi
OTg3ZDNhYjMzYjI4YTJjYjY0NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTMy
LDYgKzMyLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yIDogcHVibGljIFBpcGVsaW5lRGVzY3JpcHRvckJhc2UgewogICAg
IFByb2dyYW1tYWJsZVN0YWdlIGNvbXB1dGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQaXBlbGluZURlc2NyaXB0b3JCYXNlJj4oKnRoaXMp
OworICAgICAgICBlbmNvZGVyIDw8IGNvbXB1dGU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
cj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFBpcGVsaW5lRGVzY3JpcHRvckJhc2U+IHBpcGVsaW5lRGVzY3JpcHRvckJhc2U7CisgICAgICAg
IGRlY29kZXIgPj4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFwaXBlbGlu
ZURlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBjb21wdXRlOworICAgICAgICBk
ZWNvZGVyID4+IGNvbXB1dGU7CisgICAgICAgIGlmICghY29tcHV0ZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwaXBlbGlu
ZURlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqY29tcHV0ZSkgfSB9OworICAgIH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaAppbmRl
eCAwMjE4ODI3YjMwMWFjNmQzOGM2YzcyOGQ3OGNlMTlhOWMyOTk1YWI0Li41OTU0NWQ2MDQ2OWFi
ZWUyNTMwMmY3YzkzNDdiODQwMjUyN2NjYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgK
QEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6
OkJ1ZmZlciogY29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsK
ICAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29t
bWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFs
IGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlcjggY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6
V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNvbnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBQQUw6Oldl
YkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkRl
dmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAg
ICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpHUFUqIGNvbnZlcnRHUFVGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oCmluZGV4IDJlMjE0NzczYTY1ZGI0ZjZjOGFk
MjgyMWFjNjM2YTAwYTViZmY2ODEuLmE1OTdkZjA5NjEzNmRiMzQyOGMyYzY3ZDUyZWM5NjFmZmJj
ZjYzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0
aFN0ZW5jaWxTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVE
ZXB0aFN0ZW5jaWxTdGF0ZS5oCkBAIC00OCw2ICs0OCw3NSBAQCBzdHJ1Y3QgRGVwdGhTdGVuY2ls
U3RhdGUgewogICAgIFBBTDo6V2ViR1BVOjpEZXB0aEJpYXMgZGVwdGhCaWFzOwogICAgIGZsb2F0
IGRlcHRoQmlhc1Nsb3BlU2NhbGU7CiAgICAgZmxvYXQgZGVwdGhCaWFzQ2xhbXA7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwg
ZGVwdGhXcml0ZUVuYWJsZWQ7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhDb21wYXJlOworICAg
ICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxGcm9udDsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2ls
QmFjazsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsUmVhZE1hc2s7CisgICAgICAgIGVuY29k
ZXIgPDwgc3RlbmNpbFdyaXRlTWFzazsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEJpYXM7Cisg
ICAgICAgIGVuY29kZXIgPDwgZGVwdGhCaWFzU2xvcGVTY2FsZTsKKyAgICAgICAgZW5jb2RlciA8
PCBkZXB0aEJpYXNDbGFtcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxEZXB0aFN0ZW5jaWxTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAgICBpZiAo
IWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBkZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgZGVjb2RlciA+PiBk
ZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgaWYgKCFkZXB0aFdyaXRlRW5hYmxlZCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uPiBkZXB0aENvbXBhcmU7CisgICAgICAgIGRlY29kZXIg
Pj4gZGVwdGhDb21wYXJlOworICAgICAgICBpZiAoIWRlcHRoQ29tcGFyZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFj
ZVN0YXRlPiBzdGVuY2lsRnJvbnQ7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbEZyb250Owor
ICAgICAgICBpZiAoIXN0ZW5jaWxGcm9udCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRlPiBzdGVuY2lsQmFj
azsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsQmFjazsKKyAgICAgICAgaWYgKCFzdGVuY2ls
QmFjaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+PiBzdGVuY2ls
UmVhZE1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFJlYWRNYXNrOworICAgICAgICBp
ZiAoIXN0ZW5jaWxSZWFkTWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2ls
VmFsdWU+PiBzdGVuY2lsV3JpdGVNYXNrOworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxXcml0
ZU1hc2s7CisgICAgICAgIGlmICghc3RlbmNpbFdyaXRlTWFzaykKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RGVw
dGhCaWFzPiBkZXB0aEJpYXM7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhCaWFzOworICAgICAg
ICBpZiAoIWRlcHRoQmlhcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZGVwdGhCaWFzU2xvcGVTY2FsZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAgICBpZiAoIWRlcHRoQmlhc1Ns
b3BlU2NhbGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8ZmxvYXQ+IGRlcHRoQmlhc0NsYW1wOworICAgICAgICBkZWNvZGVyID4+IGRl
cHRoQmlhc0NsYW1wOworICAgICAgICBpZiAoIWRlcHRoQmlhc0NsYW1wKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZvcm1h
dCksIFdURk1vdmUoKmRlcHRoV3JpdGVFbmFibGVkKSwgV1RGTW92ZSgqZGVwdGhDb21wYXJlKSwg
V1RGTW92ZSgqc3RlbmNpbEZyb250KSwgV1RGTW92ZSgqc3RlbmNpbEJhY2spLCBXVEZNb3ZlKCpz
dGVuY2lsUmVhZE1hc2spLCBXVEZNb3ZlKCpzdGVuY2lsV3JpdGVNYXNrKSwgV1RGTW92ZSgqZGVw
dGhCaWFzKSwgV1RGTW92ZSgqZGVwdGhCaWFzU2xvcGVTY2FsZSksIFdURk1vdmUoKmRlcHRoQmlh
c0NsYW1wKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNj
cmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3Jp
cHRvci5oCmluZGV4IDg2YTRkNjhmZWY3MTczZTU1ZDU2MTNiZDRhNGI5NTZlMDMwZmUyMmIuLjZh
MjUyMzZkYzg5YzY2OTg5MDQ3N2VkZGQxZDIzM2E0YjJiNDI0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaApAQCAtMzcs
NiArMzcsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBEZXZpY2VEZXNj
cmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8UEFMOjpX
ZWJHUFU6OkZlYXR1cmVOYW1lPiByZXF1aXJlZEZlYXR1cmVzOwogICAgIC8vIEZJWE1FOiBBZGQg
c3VwcG9ydCBmb3IgcmVxdWlyZWRMaW1pdHMuCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsK
KyAgICAgICAgZW5jb2RlciA8PCByZXF1aXJlZEZlYXR1cmVzOworICAgIH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERldmljZURlc2NyaXB0b3I+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxP
YmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29k
ZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRv
ckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZT4+IHJlcXVpcmVkRmVhdHVy
ZXM7CisgICAgICAgIGRlY29kZXIgPj4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICAgICAgaWYgKCFy
ZXF1aXJlZEZlYXR1cmVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgq
cmVxdWlyZWRGZWF0dXJlcykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
RXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcyZWQyYmRlYjI0N2JjMmE5NzcyODk5ZjdiYzBhNTk4ZDY2NDU0OGYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaApAQCAt
MCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJH
UFVPdXRPZk1lbW9yeUVycm9yLmgiCisjaW5jbHVkZSAiV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgi
CisjaW5jbHVkZSA8dmFyaWFudD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwordXNp
bmcgRXJyb3IgPSBzdGQ6OnZhcmlhbnQ8T3V0T2ZNZW1vcnlFcnJvciwgVmFsaWRhdGlvbkVycm9y
PjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmgKaW5kZXggNDczYzRlMTk4ZjUzNTUyOTM2ZGU4MmM5
ODBmNmRkMDljNDFjYjMxZS4uMTkzODM0MjA5NDJiOGYwNGY2NGRiNjZmOGFiNjVmYWM1ZjU3Yjg4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNE
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmgKQEAg
LTM1LDYgKzM1LDMzIEBAIHN0cnVjdCBFeHRlbnQzRERpY3QgewogICAgIFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aDsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5h
dGUgaGVpZ2h0OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSBkZXB0aE9yQXJy
YXlMYXllcnM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB3aWR0aDsKKyAg
ICAgICAgZW5jb2RlciA8PCBoZWlnaHQ7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhPckFycmF5
TGF5ZXJzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEV4dGVudDNERGljdD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gd2lk
dGg7CisgICAgICAgIGRlY29kZXIgPj4gd2lkdGg7CisgICAgICAgIGlmICghd2lkdGgpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBoZWlnaHQ7CisgICAgICAgIGRlY29kZXIgPj4g
aGVpZ2h0OworICAgICAgICBpZiAoIWhlaWdodCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3Jk
aW5hdGU+IGRlcHRoT3JBcnJheUxheWVyczsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aE9yQXJy
YXlMYXllcnM7CisgICAgICAgIGlmICghZGVwdGhPckFycmF5TGF5ZXJzKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKndpZHRo
KSwgV1RGTW92ZSgqaGVpZ2h0KSwgV1RGTW92ZSgqZGVwdGhPckFycmF5TGF5ZXJzKSB9IH07Cisg
ICAgfQogfTsKIAogdXNpbmcgRXh0ZW50M0QgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2Vi
R1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4sIEV4dGVudDNERGljdD47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQuaAppbmRleCA1MGRhYmZhMjUxNDQ0M2IzMWQ1OTdkZGI2YzEyY2M1OTA2MWIz
ZDhlLi4yZDVjMmZmZGRhODRhNmE0NjJhOGQ3Y2Q1ZGQ4YTdkYWM2NzJmNzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGlu
Z0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5h
bFRleHR1cmVCaW5kaW5nTGF5b3V0LmgKQEAgLTI4LDYgKzI4LDE0IEBACiBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCB7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICByZXR1cm4geyB7IH0gfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgK
aW5kZXggNmU4MzAxZTNlMWRlMjk1MGJlMzIwOTYzMTZhZGQ2NWI2YjQyMTFmMS4uOTNjNzQ1MTJl
NDJlODRmYjVmMjA2YzY3MWM2ODM2N2VlNDNkZGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRv
ci5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1
Y3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFz
ZSB7CiAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmpl
Y3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2xvclNwYWNl
OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0
RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7
CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByZWRl
ZmluZWRDb2xvclNwYWNlPiBjb2xvclNwYWNlOworICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3Bh
Y2U7CisgICAgICAgIGlmICghY29sb3JTcGFjZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFz
ZSksIFdURk1vdmUoKmNvbG9yU3BhY2UpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUZyYWdtZW50U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVGcmFnbWVudFN0YXRlLmgKaW5kZXggZGQ0Y2FiMDgxZDViYmNkYjk1YTIzOGQ0MWMyZWE1M2Y4
YTRjMTNlOS4uOWY5NmVlMTZkY2I2Y2E0N2FhODJjYzI4NDY2OTNlOTY2ZTFjZWY1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oCkBA
IC0zMyw2ICszMywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgRnJh
Z21lbnRTdGF0ZSA6IHB1YmxpYyBQcm9ncmFtbWFibGVTdGFnZSB7CiAgICAgVmVjdG9yPENvbG9y
VGFyZ2V0U3RhdGU+IHRhcmdldHM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBzdGF0aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFnZSY+KCp0aGlzKTsKKyAgICAgICAg
ZW5jb2RlciA8PCB0YXJnZXRzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZyYWdtZW50U3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQcm9ncmFtbWFibGVTdGFnZT4gcHJv
Z3JhbW1hYmxlU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gcHJvZ3JhbW1hYmxlU3RhZ2U7Cisg
ICAgICAgIGlmICghcHJvZ3JhbW1hYmxlU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPENvbG9yVGFyZ2V0U3RhdGU+
PiB0YXJnZXRzOworICAgICAgICBkZWNvZGVyID4+IHRhcmdldHM7CisgICAgICAgIGlmICghdGFy
Z2V0cykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpwcm9ncmFtbWFibGVTdGFnZSksIFdURk1vdmUoKnRhcmdldHMpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCmluZGV4IDAz
NTRmYzU2NjE4NjAyMDdlYWM0NTU0YzJiYzZkNmRiOTBkMjQwODMuLjExODY2MGU3N2Q2OTU2NThi
ODcyMmIzZTQ3ZTJmYTJmZjVjZWU0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBJbWFnZUNvcHlCdWZmZXIgOiBwdWJsaWMg
SW1hZ2VEYXRhTGF5b3V0IHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlcjsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IEltYWdlRGF0YUxh
eW91dCY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXI7CisgICAgfQorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5QnVm
ZmVyPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8SW1hZ2VEYXRhTGF5b3V0PiBpbWFnZURhdGFMYXlvdXQ7CisgICAgICAgIGRlY29kZXIgPj4g
aW1hZ2VEYXRhTGF5b3V0OworICAgICAgICBpZiAoIWltYWdlRGF0YUxheW91dCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJ
ZGVudGlmaWVyPiBidWZmZXI7CisgICAgICAgIGRlY29kZXIgPj4gYnVmZmVyOworICAgICAgICBp
ZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCppbWFnZURhdGFMYXlvdXQpLCBXVEZNb3ZlKCpidWZmZXIpIH0g
fTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1h
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5h
bEltYWdlLmgKaW5kZXggMDcxMTBkYmQzODBkYzY1N2QxODM3YTQ0NmRjN2UwZWQ0MDZjMGRjZS4u
MWU1NTI4YjljNTRjYzFkOTdkZWZmZGMxOTMyZjJlYTExMDlhOWNjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZS5oCkBAIC0zMiw4ICszMiwyMyBAQAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAog
c3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6dmFyaWFudDxSZWZQ
dHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBzb3VyY2U7CisgICAg
Ly8gRklYTUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9uYWw8T3JpZ2luMkQ+
IG9yaWdpbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9yaWdpbjsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJ
bWFnZUNvcHlFeHRlcm5hbEltYWdlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7Cisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxPcmlnaW4yRD4+IG9yaWdpbjsKKyAg
ICAgICAgZGVjb2RlciA+PiBvcmlnaW47CisgICAgICAgIGlmICghb3JpZ2luKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9y
aWdpbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1
cmUuaAppbmRleCBiZDVjNzA0YjA0Y2Y0MjViMjMyNzFiZjMwMGY3MDc0N2Q1ZDkyNzg4Li44YTIz
MDZhODQ0MzFmY2Q1ODAxMWY1ZWM4OGZhN2FhMGM0ODk5NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKQEAgLTM5LDYg
KzM5LDM5IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlIHsKICAgICBQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGUgbWlwTGV2ZWw7CiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4zRD4gb3Jp
Z2luOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0IGFzcGVjdDsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICBlbmNvZGVyIDw8IHRleHR1cmU7CisgICAgICAgIGVuY29kZXIgPDwgbWlw
TGV2ZWw7CisgICAgICAgIGVuY29kZXIgPDwgb3JpZ2luOworICAgICAgICBlbmNvZGVyIDw8IGFz
cGVjdDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxJbWFnZUNvcHlUZXh0dXJlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gdGV4dHVyZTsKKyAgICAg
ICAgZGVjb2RlciA+PiB0ZXh0dXJlOworICAgICAgICBpZiAoIXRleHR1cmUpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkludGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbDsKKyAgICAgICAgZGVjb2RlciA+PiBtaXBM
ZXZlbDsKKyAgICAgICAgaWYgKCFtaXBMZXZlbCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPE9yaWdpbjNEPj4g
b3JpZ2luOworICAgICAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAgICAgICAgaWYgKCFvcmlnaW4p
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q+IGFzcGVjdDsKKyAgICAgICAgZGVjb2RlciA+
PiBhc3BlY3Q7CisgICAgICAgIGlmICghYXNwZWN0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnRleHR1cmUpLCBXVEZNb3Zl
KCptaXBMZXZlbCksIFdURk1vdmUoKm9yaWdpbiksIFdURk1vdmUoKmFzcGVjdCkgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
aAppbmRleCA1NTVhZjBlMWFiZWY2MzUyNGE3N2EwNTg3NDBjZWYxNDZiYWUyMGJkLi44NDliYzRl
ODYxYzMzNjNhNjkwOTNlY2ZmOTFiMGY1ZDUyMGU0NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgK
QEAgLTMzLDYgKzMzLDMzIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgSW1h
Z2VDb3B5VGV4dHVyZVRhZ2dlZCA6IHB1YmxpYyBJbWFnZUNvcHlUZXh0dXJlIHsKICAgICBQQUw6
OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZTsKICAgICBib29sIHByZW11
bHRpcGxpZWRBbHBoYTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PGNvbnN0IEltYWdlQ29weVRleHR1cmUmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIg
PDwgY29sb3JTcGFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBwcmVtdWx0aXBsaWVkQWxwaGE7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPEltYWdlQ29weVRleHR1cmU+IGltYWdlQ29weVRleHR1cmU7
CisgICAgICAgIGRlY29kZXIgPj4gaW1hZ2VDb3B5VGV4dHVyZTsKKyAgICAgICAgaWYgKCFpbWFn
ZUNvcHlUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4gY29sb3JT
cGFjZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOworICAgICAgICBpZiAoIWNvbG9y
U3BhY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gcHJlbXVsdGlwbGllZEFscGhhOworICAgICAgICBkZWNvZGVyID4+IHBy
ZW11bHRpcGxpZWRBbHBoYTsKKyAgICAgICAgaWYgKCFwcmVtdWx0aXBsaWVkQWxwaGEpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqaW1hZ2VDb3B5VGV4dHVyZSksIFdURk1vdmUoKmNvbG9yU3BhY2UpLCBXVEZNb3ZlKCpwcmVt
dWx0aXBsaWVkQWxwaGEpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUlt
YWdlRGF0YUxheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
RGF0YUxheW91dC5oCmluZGV4IDFlNWRkMGE0NjcxNmQ4OGQwY2Q3YTJhNmNhYTcwOTczZGZiZmI5
NzQuLmNlNGNlMzkxNDczMDNmZTcwZTI3ZjY5YWFiZTBjZTVjMWExNTdiMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmgKQEAg
LTM0LDYgKzM0LDMzIEBAIHN0cnVjdCBJbWFnZURhdGFMYXlvdXQgewogICAgIFBBTDo6V2ViR1BV
OjpTaXplNjQgb2Zmc2V0OwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4g
Ynl0ZXNQZXJSb3c7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiByb3dz
UGVySW1hZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7Cisg
ICAgICAgIGVuY29kZXIgPDwgYnl0ZXNQZXJSb3c7CisgICAgICAgIGVuY29kZXIgPDwgcm93c1Bl
ckltYWdlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEltYWdlRGF0YUxheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldDsKKyAg
ICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICghb2Zmc2V0KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4+IGJ5dGVzUGVyUm93OworICAgICAgICBkZWNvZGVy
ID4+IGJ5dGVzUGVyUm93OworICAgICAgICBpZiAoIWJ5dGVzUGVyUm93KQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlNpemUzMj4+IHJvd3NQZXJJbWFnZTsKKyAgICAgICAgZGVjb2RlciA+
PiByb3dzUGVySW1hZ2U7CisgICAgICAgIGlmICghcm93c1BlckltYWdlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9mZnNl
dCksIFdURk1vdmUoKmJ5dGVzUGVyUm93KSwgV1RGTW92ZSgqcm93c1BlckltYWdlKSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oCmluZGV4IGJk
MTFiZTJlYzFlYzFiMmU0NzkxYzllZDgzMmM5YWMwMzAzYjE3OGEuLjhkZTVkNThkOTgzMTlmOGQ5
MTg4ODg2YzQ0MTAwOTYwMWMzZjk3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaApAQCAtMzMsNiArMzMsMzMgQEAgc3Ry
dWN0IE11bHRpc2FtcGxlU3RhdGUgewogICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgY291bnQ7CiAg
ICAgUEFMOjpXZWJHUFU6OlNhbXBsZU1hc2sgbWFzazsKICAgICBib29sIGFscGhhVG9Db3ZlcmFn
ZUVuYWJsZWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjb3VudDsKKyAg
ICAgICAgZW5jb2RlciA8PCBtYXNrOworICAgICAgICBlbmNvZGVyIDw8IGFscGhhVG9Db3ZlcmFn
ZUVuYWJsZWQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8TXVsdGlzYW1wbGVTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IGNvdW50Owor
ICAgICAgICBkZWNvZGVyID4+IGNvdW50OworICAgICAgICBpZiAoIWNvdW50KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTYW1wbGVNYXNrPiBtYXNrOworICAgICAgICBkZWNvZGVyID4+IG1hc2s7CisgICAgICAg
IGlmICghbWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxib29sPiBhbHBoYVRvQ292ZXJhZ2VFbmFibGVkOworICAgICAgICBkZWNv
ZGVyID4+IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAgICAgIGlmICghYWxwaGFUb0NvdmVy
YWdlRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCpjb3VudCksIFdURk1vdmUoKm1hc2spLCBXVEZNb3ZlKCphbHBo
YVRvQ292ZXJhZ2VFbmFibGVkKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKaW5kZXggMjM4NzkwMGE0NjE0ZGY4ZjBjY2JkZTc4
Njk3N2I5MjA3YTk1MWU2Ni4uNGZjYjlmNTU4Nzc2ZjQzYzE2OGJlNDBlMjcyMTZiNGU0OTMwYTM2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9i
amVjdERlc2NyaXB0b3JCYXNlLmgKQEAgLTMxLDYgKzMxLDIxIEBAIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CiAKIHN0cnVjdCBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgU3RyaW5nIGxh
YmVsOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbGFiZWw7CisgICAgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8T2JqZWN0
RGVzY3JpcHRvckJhc2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGxhYmVsOworICAgICAgICBkZWNvZGVyID4+IGxhYmVsOwor
ICAgICAgICBpZiAoIWxhYmVsKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmxhYmVsKSB9IH07CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVU9yaWdpbjJELmgKaW5kZXggZmRjNjY3MTAzMDdlYjQ0ZGQ5MWJmMWU4N2M0Njc0ZjE4
NGMwNjA4Mi4uZGYxZmZmZDU3ODQzOTUyM2JkYzcyMTE0MzMyN2IwYzZmZTNhNzc3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKQEAgLTM0LDYgKzM0
LDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgT3JpZ2luMkREaWN0IHsK
ICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeDsKICAgICBQQUw6OldlYkdQVTo6
SW50ZWdlckNvb3JkaW5hdGUgeTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IHg7CisgICAgICAgIGVuY29kZXIgPDwgeTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPcmlnaW4yRERpY3Q+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGU+IHg7CisgICAgICAgIGRlY29kZXIgPj4geDsKKyAgICAgICAgaWYgKCF4
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4geTsKKyAgICAgICAgZGVjb2RlciA+
PiB5OworICAgICAgICBpZiAoIXkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqeCksIFdURk1vdmUoKnkpIH0gfTsKKyAgICB9
CiB9OwogCiB1c2luZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8UEFMOjpXZWJHUFU6
OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luMkREaWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmgKaW5kZXggM2U0NzQyNTM1Yzg5NDY0ODIzOTBlMWU4
ZjQ0Y2ZiMGQwYTZhZmM4Yi4uY2Y3NDVhNDIwNzRhY2IyMGZlNzUxNDZjMGU5NDUzMGU2NzRjOGU4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNE
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmgKQEAg
LTM1LDYgKzM1LDMzIEBAIHN0cnVjdCBPcmlnaW4zRERpY3QgewogICAgIFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZSB4OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB5
OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB6OworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7
CisgICAgICAgIGVuY29kZXIgPDwgeDsKKyAgICAgICAgZW5jb2RlciA8PCB5OworICAgICAgICBl
bmNvZGVyIDw8IHo7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8T3JpZ2luM0REaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRl
PiB4OworICAgICAgICBkZWNvZGVyID4+IHg7CisgICAgICAgIGlmICgheCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6SW50ZWdlckNvb3JkaW5hdGU+IHk7CisgICAgICAgIGRlY29kZXIgPj4geTsKKyAgICAgICAg
aWYgKCF5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gejsKKyAgICAgICAgZGVj
b2RlciA+PiB6OworICAgICAgICBpZiAoIXopCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqeCksIFdURk1vdmUoKnkpLCBXVEZN
b3ZlKCp6KSB9IH07CisgICAgfQogfTsKIAogdXNpbmcgT3JpZ2luM0QgPSBzdGQ6OnZhcmlhbnQ8
VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4sIE9yaWdpbjNERGljdD47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlF
cnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJy
b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42YzY5MzU3NTcxYWYxN2VmOWU3Zjc2NDIzODc3ZmYzNDg0YWE2NjVh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91
dE9mTWVtb3J5RXJyb3IuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0cnVjdCBPdXRPZk1lbW9yeUVy
cm9yIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPdXRPZk1lbW9yeUVycm9yPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsgfSB9OworICAgIH0KK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCBlMjQ5
MmFlMDk4Y2VkZjg4Y2ViY2RlOWE0MDM4ODEwOGJkYTc2OWIzLi41YzRiNzA3OTAwNTFjZmMxZjdj
NTU5NTE2NjhiOWY0NWIwNTVlMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKQEAgLTMyLDYgKzMy
LDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBQaXBlbGluZURlc2Ny
aXB0b3JCYXNlIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBXZWJHUFVJZGVu
dGlmaWVyIGxheW91dDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNv
ZGVyIDw8IGxheW91dDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JCYXNlPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJh
c2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2Ny
aXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlk
ZW50aWZpZXI+IGxheW91dDsKKyAgICAgICAgZGVjb2RlciA+PiBsYXlvdXQ7CisgICAgICAgIGlm
ICghbGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqbGF5b3V0
KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaAppbmRleCA2NDE3MzBlYmE2OTlkN2JlMmU5MGQxYzA0ZGM5MmUxMjdk
ZTEyN2JmLi44MGEyMDE3ZmJjZjlkODRlZTM0MDI0OTdhNmNiYjQ3OTg2ZjA1NzdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvci5oCkBAIC0zMyw2ICszMywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCiBzdHJ1Y3QgUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIE9iamVj
dERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4gYmluZEdyb3Vw
TGF5b3V0czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0
PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8
IGJpbmRHcm91cExheW91dHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVj
dERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxXZWJHUFVJZGVudGlmaWVyPj4gYmluZEdyb3VwTGF5b3V0czsKKyAgICAgICAgZGVjb2Rl
ciA+PiBiaW5kR3JvdXBMYXlvdXRzOworICAgICAgICBpZiAoIWJpbmRHcm91cExheW91dHMpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpiaW5kR3JvdXBMYXlvdXRzKSB9
IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKaW5kZXgg
Yjg2ODc1YmI1MWVmNGM5MzcyZDhmMjVkMmFiMzM1OTI2MTViNzRiMy4uZDE4MjMzMjIzZDk3MGE4
ZjA5OTA2MjU4NzgxMTVhYTQ3NTRiNDg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKQEAgLTQyLDYgKzQyLDQ1IEBAIHN0cnVj
dCBQcmltaXRpdmVTdGF0ZSB7CiAKICAgICAvLyBSZXF1aXJlcyAiZGVwdGgtY2xpcC1jb250cm9s
IiBmZWF0dXJlLgogICAgIGJvb2wgdW5jbGlwcGVkRGVwdGg7CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgZW5jb2RlciA8PCB0b3BvbG9neTsKKyAgICAgICAgZW5jb2RlciA8PCBzdHJpcEluZGV4
Rm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8IGZyb250RmFjZTsKKyAgICAgICAgZW5jb2RlciA8
PCBjdWxsTW9kZTsKKyAgICAgICAgZW5jb2RlciA8PCB1bmNsaXBwZWREZXB0aDsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQcmltaXRp
dmVTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neT4gdG9wb2xvZ3k7CisgICAgICAg
IGRlY29kZXIgPj4gdG9wb2xvZ3k7CisgICAgICAgIGlmICghdG9wb2xvZ3kpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQ+PiBzdHJpcEluZGV4Rm9ybWF0OworICAgICAg
ICBkZWNvZGVyID4+IHN0cmlwSW5kZXhGb3JtYXQ7CisgICAgICAgIGlmICghc3RyaXBJbmRleEZv
cm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6RnJvbnRGYWNlPiBmcm9udEZhY2U7CisgICAgICAgIGRlY29k
ZXIgPj4gZnJvbnRGYWNlOworICAgICAgICBpZiAoIWZyb250RmFjZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
Q3VsbE1vZGU+IGN1bGxNb2RlOworICAgICAgICBkZWNvZGVyID4+IGN1bGxNb2RlOworICAgICAg
ICBpZiAoIWN1bGxNb2RlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHVuY2xpcHBlZERlcHRoOworICAgICAgICBkZWNvZGVy
ID4+IHVuY2xpcHBlZERlcHRoOworICAgICAgICBpZiAoIXVuY2xpcHBlZERlcHRoKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
KnRvcG9sb2d5KSwgV1RGTW92ZSgqc3RyaXBJbmRleEZvcm1hdCksIFdURk1vdmUoKmZyb250RmFj
ZSksIFdURk1vdmUoKmN1bGxNb2RlKSwgV1RGTW92ZSgqdW5jbGlwcGVkRGVwdGgpIH0gfTsKKyAg
ICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAppbmRleCBj
NWI0MTY4MDZhOWNmY2NmZGEyZjBmMGJkNjIzNzYyMzI2NDgyMjcwLi5lMWYwYWUwZDY5ZjI5YmI5
ZmY3ODJlZWQ2MmQzNmQzODU3YzE5ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaApAQCAtMzgsNiArMzgsMzMgQEAg
c3RydWN0IFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIG1vZHVsZTsK
ICAgICBTdHJpbmcgZW50cnlQb2ludDsKICAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
UGlwZWxpbmVDb25zdGFudFZhbHVlPj4gY29uc3RhbnRzOworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgbW9kdWxlOworICAgICAgICBlbmNvZGVyIDw8IGVudHJ5UG9pbnQ7Cisg
ICAgICAgIGVuY29kZXIgPDwgY29uc3RhbnRzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRl
bnRpZmllcj4gbW9kdWxlOworICAgICAgICBkZWNvZGVyID4+IG1vZHVsZTsKKyAgICAgICAgaWYg
KCFtb2R1bGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbnRyeVBvaW50OworICAgICAgICBkZWNvZGVyID4+IGVudHJ5
UG9pbnQ7CisgICAgICAgIGlmICghZW50cnlQb2ludCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgUGlwZWxpbmVDb25zdGFudFZhbHVlPj4+IGNvbnN0YW50czsKKyAgICAgICAgZGVjb2Rl
ciA+PiBjb25zdGFudHM7CisgICAgICAgIGlmICghY29uc3RhbnRzKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm1vZHVsZSks
IFdURk1vdmUoKmVudHJ5UG9pbnQpLCBXVEZNb3ZlKCpjb25zdGFudHMpIH0gfTsKKyAgICB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCmluZGV4IGNkNDVi
NjYxMGE3YzA4NzU1Y2JlYTU0MmFlYjEwYjYwMjg4NTczMjIuLmJlMTEyZDkyNTY2NWRiYTRhMDIz
YWY0N2VlZDlmODI0YWI5M2I5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKQEAgLTM3LDYgKzM3LDM5IEBAIHN0
cnVjdCBRdWVyeVNldERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ugewog
ICAgIFBBTDo6V2ViR1BVOjpRdWVyeVR5cGUgdHlwZTsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTMy
IGNvdW50OwogICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lPiBw
aXBlbGluZVN0YXRpc3RpY3M7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBz
dGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAg
ZW5jb2RlciA8PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8IGNvdW50OworICAgICAgICBlbmNv
ZGVyIDw8IHBpcGVsaW5lU3RhdGlzdGljczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxRdWVyeVNldERlc2NyaXB0b3I+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNj
cmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOwor
ICAgICAgICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gY291bnQ7CisgICAgICAg
IGRlY29kZXIgPj4gY291bnQ7CisgICAgICAgIGlmICghY291bnQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2Vi
R1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU+PiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAg
IGRlY29kZXIgPj4gcGlwZWxpbmVTdGF0aXN0aWNzOworICAgICAgICBpZiAoIXBpcGVsaW5lU3Rh
dGlzdGljcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnR5cGUpLCBX
VEZNb3ZlKCpjb3VudCksIFdURk1vdmUoKnBpcGVsaW5lU3RhdGlzdGljcykgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaApp
bmRleCAwODFiYTY0YjBlMWQ5MmE0YjkwNzA3ZmU3NDJhZTcxMmM1ZDQ2NGIzLi5jMDk2MjgwNzY0
MWJmOWNhNDAxZDgxMmJhMjAwMzFiMmVhOTAwYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKQEAg
LTMwLDYgKzMwLDIwIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgUmVu
ZGVyQnVuZGxlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVz
Y3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyQnVuZGxlRGVzY3JpcHRvcj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2Ny
aXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oCmluZGV4
IDU0MTc5MTljYmQ3YWIyNWJlOGJkOGVjMThkYzAzYzBiNWQ1NzE5Y2MuLmUyOWNkNTRiOTVjYTQw
YWMwYWQ4YmU1OWU3NDgzMmQyZGU4ZGI0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3Jp
cHRvci5oCkBAIC0zMiw2ICszMiwzMyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3Ry
dWN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIFJlbmRlclBhc3NMYXlv
dXQgewogICAgIGJvb2wgZGVwdGhSZWFkT25seTsKICAgICBib29sIHN0ZW5jaWxSZWFkT25seTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlclBhc3NMYXlvdXQmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhSZWFkT25s
eTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsUmVhZE9ubHk7CisgICAgfQorCisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyQnVuZGxlRW5j
b2RlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiByZW5kZXJQYXNzTGF5b3V0OworICAgICAg
ICBkZWNvZGVyID4+IHJlbmRlclBhc3NMYXlvdXQ7CisgICAgICAgIGlmICghcmVuZGVyUGFzc0xh
eW91dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxib29sPiBkZXB0aFJlYWRPbmx5OworICAgICAgICBkZWNvZGVyID4+IGRlcHRoUmVh
ZE9ubHk7CisgICAgICAgIGlmICghZGVwdGhSZWFkT25seSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBzdGVuY2lsUmVhZE9u
bHk7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFJlYWRPbmx5OworICAgICAgICBpZiAoIXN0
ZW5jaWxSZWFkT25seSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpyZW5kZXJQYXNzTGF5b3V0KSwgV1RGTW92ZSgqZGVwdGhS
ZWFkT25seSksIFdURk1vdmUoKnN0ZW5jaWxSZWFkT25seSkgfSB9OworICAgIH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaAppbmRl
eCBlMGYzYzg5M2IxY2JhNzEzMDhmNzhjOGM3NjI1MjE4ZDRiMzI3MDEzLi5iMGQ4OTI3ZWYyYmE4
YTMwYjllYTZiNmQ1ZGY0N2UxNDg2NGVjN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgK
QEAgLTQxLDYgKzQxLDM5IEBAIHN0cnVjdCBSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50IHsKIAog
ICAgIHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgQ29s
b3JEaWN0PiBsb2FkVmFsdWU7CiAgICAgUEFMOjpXZWJHUFU6OlN0b3JlT3Agc3RvcmVPcDsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHZpZXc7CisgICAgICAgIGVuY29kZXIg
PDwgcmVzb2x2ZVRhcmdldDsKKyAgICAgICAgZW5jb2RlciA8PCBsb2FkVmFsdWU7CisgICAgICAg
IGVuY29kZXIgPDwgc3RvcmVPcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRl
bnRpZmllcj4gdmlldzsKKyAgICAgICAgZGVjb2RlciA+PiB2aWV3OworICAgICAgICBpZiAoIXZp
ZXcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gcmVzb2x2ZVRhcmdldDsKKyAgICAgICAgZGVjb2RlciA+
PiByZXNvbHZlVGFyZ2V0OworICAgICAgICBpZiAoIXJlc29sdmVUYXJnZXQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJp
YW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxkb3VibGU+LCBDb2xvckRpY3Q+PiBsb2Fk
VmFsdWU7CisgICAgICAgIGRlY29kZXIgPj4gbG9hZFZhbHVlOworICAgICAgICBpZiAoIWxvYWRW
YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gc3RvcmVPcDsKKyAgICAgICAgZGVjb2RlciA+
PiBzdG9yZU9wOworICAgICAgICBpZiAoIXN0b3JlT3ApCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdmlldyksIFdURk1vdmUo
KnJlc29sdmVUYXJnZXQpLCBXVEZNb3ZlKCpsb2FkVmFsdWUpLCBXVEZNb3ZlKCpzdG9yZU9wKSB9
IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRl
clBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKaW5kZXggNjhhNDg0YjAzM2QyMTUyMWJkZDM2
M2ZmYmI3MGRhM2Y4ZjM5OGRmYi4uZTgyZWQ2YzgxZThhY2E3ODVjODA1OGMwMzI0MjZlZTVmMGMy
YmI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRl
clBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKQEAgLTQ0LDYg
KzQ0LDU3IEBAIHN0cnVjdCBSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudCB7CiAgICAg
c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFs
dWU+IHN0ZW5jaWxMb2FkVmFsdWU7CiAgICAgUEFMOjpXZWJHUFU6OlN0b3JlT3Agc3RlbmNpbFN0
b3JlT3A7CiAgICAgYm9vbCBzdGVuY2lsUmVhZE9ubHk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgZW5jb2RlciA8PCB2aWV3OworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoTG9hZFZhbHVlOwor
ICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RvcmVPcDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0
aFJlYWRPbmx5OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxMb2FkVmFsdWU7CisgICAgICAg
IGVuY29kZXIgPDwgc3RlbmNpbFN0b3JlT3A7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbFJl
YWRPbmx5OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50PiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmll
cj4gdmlldzsKKyAgICAgICAgZGVjb2RlciA+PiB2aWV3OworICAgICAgICBpZiAoIXZpZXcpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIGZsb2F0Pj4gZGVwdGhMb2FkVmFsdWU7
CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhMb2FkVmFsdWU7CisgICAgICAgIGlmICghZGVwdGhM
b2FkVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JlT3A+IGRlcHRoU3RvcmVPcDsKKyAgICAgICAg
ZGVjb2RlciA+PiBkZXB0aFN0b3JlT3A7CisgICAgICAgIGlmICghZGVwdGhTdG9yZU9wKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhSZWFkT25seTsKKyAg
ICAgICAgaWYgKCFkZXB0aFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9h
ZE9wLCBQQUw6OldlYkdQVTo6U3RlbmNpbFZhbHVlPj4gc3RlbmNpbExvYWRWYWx1ZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBzdGVuY2lsTG9hZFZhbHVlOworICAgICAgICBpZiAoIXN0ZW5jaWxMb2Fk
VmFsdWUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JlT3A+IHN0ZW5jaWxTdG9yZU9wOworICAgICAgICBk
ZWNvZGVyID4+IHN0ZW5jaWxTdG9yZU9wOworICAgICAgICBpZiAoIXN0ZW5jaWxTdG9yZU9wKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PGJvb2w+IHN0ZW5jaWxSZWFkT25seTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE9u
bHk7CisgICAgICAgIGlmICghc3RlbmNpbFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnZpZXcpLCBXVEZNb3Zl
KCpkZXB0aExvYWRWYWx1ZSksIFdURk1vdmUoKmRlcHRoU3RvcmVPcCksIFdURk1vdmUoKmRlcHRo
UmVhZE9ubHkpLCBXVEZNb3ZlKCpzdGVuY2lsTG9hZFZhbHVlKSwgV1RGTW92ZSgqc3RlbmNpbFN0
b3JlT3ApLCBXVEZNb3ZlKCpzdGVuY2lsUmVhZE9ubHkpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAppbmRleCA4N2U4MTBhMmI1
ZTczZjU3YWI5ZDkwZmIzYzcyYmQxZTdhZDIxN2I0Li5iYTRjZWUyMTBjYTAwYmViOWU4Yjg3N2Zm
Nzk3MjZjNDVmYmQ4MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaApAQCAtNDAsNiArNDAsNDUgQEAgc3Ry
dWN0IFJlbmRlclBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsK
ICAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50PiBkZXB0
aFN0ZW5jaWxBdHRhY2htZW50OwogICAgIFdlYkdQVUlkZW50aWZpZXIgb2NjbHVzaW9uUXVlcnlT
ZXQ7CiAgICAgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyB0aW1lc3RhbXBXcml0ZXM7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2xvckF0dGFjaG1l
bnRzOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQ7CisgICAgICAg
IGVuY29kZXIgPDwgb2NjbHVzaW9uUXVlcnlTZXQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltZXN0
YW1wV3JpdGVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9i
amVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JC
YXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50Pj4gY29sb3JBdHRhY2htZW50czsKKyAgICAgICAgZGVjb2RlciA+
PiBjb2xvckF0dGFjaG1lbnRzOworICAgICAgICBpZiAoIWNvbG9yQXR0YWNobWVudHMpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3Rk
OjpvcHRpb25hbDxSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudD4+IGRlcHRoU3RlbmNp
bEF0dGFjaG1lbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhTdGVuY2lsQXR0YWNobWVudDsK
KyAgICAgICAgaWYgKCFkZXB0aFN0ZW5jaWxBdHRhY2htZW50KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+
IG9jY2x1c2lvblF1ZXJ5U2V0OworICAgICAgICBkZWNvZGVyID4+IG9jY2x1c2lvblF1ZXJ5U2V0
OworICAgICAgICBpZiAoIW9jY2x1c2lvblF1ZXJ5U2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NUaW1lc3RhbXBX
cml0ZXM+IHRpbWVzdGFtcFdyaXRlczsKKyAgICAgICAgZGVjb2RlciA+PiB0aW1lc3RhbXBXcml0
ZXM7CisgICAgICAgIGlmICghdGltZXN0YW1wV3JpdGVzKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0
b3JCYXNlKSwgV1RGTW92ZSgqY29sb3JBdHRhY2htZW50cyksIFdURk1vdmUoKmRlcHRoU3RlbmNp
bEF0dGFjaG1lbnQpLCBXVEZNb3ZlKCpvY2NsdXNpb25RdWVyeVNldCksIFdURk1vdmUoKnRpbWVz
dGFtcFdyaXRlcykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBh
c3NMYXlvdXQuaAppbmRleCBhMTcyZWUyNWNlYTE1ZWRlNzNjNTRhMzdmYWY3NWM3N2M1ODI0OGQx
Li40ZWUzMWVlMzZhY2JlOWNjN2Q0ZjhiYTBkNWI2MmRiMzdhNzE0Mzk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgKQEAg
LTM3LDYgKzM3LDM5IEBAIHN0cnVjdCBSZW5kZXJQYXNzTGF5b3V0IDogcHVibGljIE9iamVjdERl
c2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGNv
bG9yRm9ybWF0czsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
PiBkZXB0aFN0ZW5jaWxGb3JtYXQ7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBzYW1wbGVDb3Vu
dDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0
IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9y
Rm9ybWF0czsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFN0ZW5jaWxGb3JtYXQ7CisgICAgICAg
IGVuY29kZXIgPDwgc2FtcGxlQ291bnQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0xheW91dD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0
b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3RE
ZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+PiBjb2xvckZvcm1hdHM7CisgICAgICAgIGRl
Y29kZXIgPj4gY29sb3JGb3JtYXRzOworICAgICAgICBpZiAoIWNvbG9yRm9ybWF0cykKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0Pj4gZGVwdGhTdGVuY2lsRm9ybWF0
OworICAgICAgICBkZWNvZGVyID4+IGRlcHRoU3RlbmNpbEZvcm1hdDsKKyAgICAgICAgaWYgKCFk
ZXB0aFN0ZW5jaWxGb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gc2FtcGxlQ291bnQ7Cisg
ICAgICAgIGRlY29kZXIgPj4gc2FtcGxlQ291bnQ7CisgICAgICAgIGlmICghc2FtcGxlQ291bnQp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb2xvckZvcm1hdHMpLCBX
VEZNb3ZlKCpkZXB0aFN0ZW5jaWxGb3JtYXQpLCBXVEZNb3ZlKCpzYW1wbGVDb3VudCkgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZXMuaAppbmRleCA4YjFlYmE3NDY1ZjE3NjU5ZjgwYzhhMTIxZTJhMWVmOGVjYTE1OWQ0
Li44YjkyNjNhN2M0ODBkMDgzMWY1NDQ5OTZmZWUxMWIyNzA0ZTRlYWVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wV3JpdGVzLmgKQEAgLTM3LDYgKzM3LDMzIEBAIHN0cnVjdCBSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGUgewogICAgIFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQ7CiAgICAgUEFMOjpXZWJH
UFU6OlNpemUzMiBxdWVyeUluZGV4OwogICAgIFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0
YW1wTG9jYXRpb24gbG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBxdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVyeUluZGV4OworICAgICAgICBlbmNv
ZGVyIDw8IGxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZp
ZXI+IHF1ZXJ5U2V0OworICAgICAgICBkZWNvZGVyID4+IHF1ZXJ5U2V0OworICAgICAgICBpZiAo
IXF1ZXJ5U2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHF1ZXJ5SW5kZXg7CisgICAgICAgIGRl
Y29kZXIgPj4gcXVlcnlJbmRleDsKKyAgICAgICAgaWYgKCFxdWVyeUluZGV4KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24+IGxvY2F0aW9uOworICAgICAgICBkZWNv
ZGVyID4+IGxvY2F0aW9uOworICAgICAgICBpZiAoIWxvY2F0aW9uKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnF1ZXJ5U2V0
KSwgV1RGTW92ZSgqcXVlcnlJbmRleCksIFdURk1vdmUoKmxvY2F0aW9uKSB9IH07CisgICAgfQog
fTsKIAogdXNpbmcgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxSZW5kZXJQYXNz
VGltZXN0YW1wV3JpdGU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IDlhMjcxYzczZDUz
NTE4M2IwODYxNmMzYjY3Mjg2Mjg1M2ZkNmZjOGQuLjZjMmVmNzMwOTJhYTI0Y2FmM2Q1OTQxN2I0
Y2IwNjFhOTkyZWYxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTQxLDYgKzQxLDUx
IEBAIHN0cnVjdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSB7CiAgICAgc3RkOjpvcHRpb25hbDxEZXB0aFN0ZW5jaWxTdGF0ZT4gZGVwdGhT
dGVuY2lsOwogICAgIHN0ZDo6b3B0aW9uYWw8TXVsdGlzYW1wbGVTdGF0ZT4gbXVsdGlzYW1wbGU7
CiAgICAgc3RkOjpvcHRpb25hbDxGcmFnbWVudFN0YXRlPiBmcmFnbWVudDsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgdmVydGV4OworICAgICAgICBl
bmNvZGVyIDw8IHByaW1pdGl2ZTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFN0ZW5jaWw7Cisg
ICAgICAgIGVuY29kZXIgPDwgbXVsdGlzYW1wbGU7CisgICAgICAgIGVuY29kZXIgPDwgZnJhZ21l
bnQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gcGlw
ZWxpbmVEZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBwaXBlbGluZURlc2NyaXB0
b3JCYXNlOworICAgICAgICBpZiAoIXBpcGVsaW5lRGVzY3JpcHRvckJhc2UpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVydGV4U3Rh
dGU+IHZlcnRleDsKKyAgICAgICAgZGVjb2RlciA+PiB2ZXJ0ZXg7CisgICAgICAgIGlmICghdmVy
dGV4KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPHN0ZDo6b3B0aW9uYWw8UHJpbWl0aXZlU3RhdGU+PiBwcmltaXRpdmU7CisgICAgICAg
IGRlY29kZXIgPj4gcHJpbWl0aXZlOworICAgICAgICBpZiAoIXByaW1pdGl2ZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPj4gZGVwdGhTdGVuY2lsOworICAgICAgICBkZWNvZGVy
ID4+IGRlcHRoU3RlbmNpbDsKKyAgICAgICAgaWYgKCFkZXB0aFN0ZW5jaWwpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxNdWx0aXNhbXBsZVN0YXRlPj4gbXVsdGlzYW1wbGU7CisgICAgICAgIGRlY29kZXIgPj4g
bXVsdGlzYW1wbGU7CisgICAgICAgIGlmICghbXVsdGlzYW1wbGUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxG
cmFnbWVudFN0YXRlPj4gZnJhZ21lbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZnJhZ21lbnQ7Cisg
ICAgICAgIGlmICghZnJhZ21lbnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcGlwZWxpbmVEZXNjcmlwdG9yQmFzZSksIFdU
Rk1vdmUoKnZlcnRleCksIFdURk1vdmUoKnByaW1pdGl2ZSksIFdURk1vdmUoKmRlcHRoU3RlbmNp
bCksIFdURk1vdmUoKm11bHRpc2FtcGxlKSwgV1RGTW92ZSgqZnJhZ21lbnQpIH0gfTsKKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCmlu
ZGV4IGE5MTc4ZDYxNzcyMzczNjczOGZmMGQ2MGZkMzUwZWYzMWQzZmNlYzkuLjA2YjAzMWM3MTJl
ZGU4N2Y1ODU5YTNkNTNiM2I0NmVkNTkxMTIzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgKQEAgLTMz
LDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgUmVxdWVzdEFk
YXB0ZXJPcHRpb25zIHsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQb3dlclByZWZl
cmVuY2U+IHBvd2VyUHJlZmVyZW5jZTsKICAgICBib29sIGZvcmNlRmFsbGJhY2tBZGFwdGVyOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgcG93ZXJQcmVmZXJlbmNlOworICAg
ICAgICBlbmNvZGVyIDw8IGZvcmNlRmFsbGJhY2tBZGFwdGVyOworICAgIH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlcXVlc3RBZGFwdGVyT3B0
aW9ucz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlv
bmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZT4+IHBvd2VyUHJl
ZmVyZW5jZTsKKyAgICAgICAgZGVjb2RlciA+PiBwb3dlclByZWZlcmVuY2U7CisgICAgICAgIGlm
ICghcG93ZXJQcmVmZXJlbmNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGZvcmNlRmFsbGJhY2tBZGFwdGVyOworICAgICAg
ICBkZWNvZGVyID4+IGZvcmNlRmFsbGJhY2tBZGFwdGVyOworICAgICAgICBpZiAoIWZvcmNlRmFs
bGJhY2tBZGFwdGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKnBvd2VyUHJlZmVyZW5jZSksIFdURk1vdmUoKmZvcmNlRmFs
bGJhY2tBZGFwdGVyKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1w
bGVyQmluZGluZ0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nTGF5b3V0LmgKaW5kZXggOTBlYTk4N2ExMTg2M2UzYzExN2QyNjk1YzUzNzZl
NWMwNDRmNDI0Zi4uOTU5MjFlYTU4NzQ1NTNkOGZiZjBjZDVhNTNiNGQwMDUwMDZlMzJmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5n
TGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJC
aW5kaW5nTGF5b3V0LmgKQEAgLTMxLDYgKzMxLDIxIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiAKIHN0cnVjdCBTYW1wbGVyQmluZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OlNh
bXBsZXJCaW5kaW5nVHlwZSB0eXBlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgdHlwZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxTYW1wbGVyQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGlu
Z1R5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0eXBl
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7
IFdURk1vdmUoKnR5cGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNh
bXBsZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2Ft
cGxlckRlc2NyaXB0b3IuaAppbmRleCBkN2M3NDdhOTQ3NTZjY2I0MDNkZjNmZTU1ZjFiNTM4ZjU3
MjE4MTIwLi5iOGQ4NTk0ODcxNDJiY2NmYWM1MTE1ZjliZmFkOWUzOWNiMGM1M2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0
b3IuaApAQCAtNDUsNiArNDUsODEgQEAgc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yIDogcHVibGlj
IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBmbG9hdCBsb2RNYXhDbGFtcDsKICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24+IGNvbXBhcmU7CiAgICAgdWlu
dDE2X3QgbWF4QW5pc290cm9weTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAg
ICBlbmNvZGVyIDw8IGFkZHJlc3NNb2RlVTsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRyZXNzTW9k
ZVY7CisgICAgICAgIGVuY29kZXIgPDwgYWRkcmVzc01vZGVXOworICAgICAgICBlbmNvZGVyIDw8
IG1hZ0ZpbHRlcjsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5GaWx0ZXI7CisgICAgICAgIGVuY29k
ZXIgPDwgbWlwbWFwRmlsdGVyOworICAgICAgICBlbmNvZGVyIDw8IGxvZE1pbkNsYW1wOworICAg
ICAgICBlbmNvZGVyIDw8IGxvZE1heENsYW1wOworICAgICAgICBlbmNvZGVyIDw8IGNvbXBhcmU7
CisgICAgICAgIGVuY29kZXIgPDwgbWF4QW5pc290cm9weTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTYW1wbGVyRGVzY3JpcHRvcj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9i
amVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9y
QmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IGFkZHJlc3NNb2RlVTsKKyAgICAgICAg
ZGVjb2RlciA+PiBhZGRyZXNzTW9kZVU7CisgICAgICAgIGlmICghYWRkcmVzc01vZGVVKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpBZGRyZXNzTW9kZT4gYWRkcmVzc01vZGVWOworICAgICAgICBkZWNvZGVyID4+
IGFkZHJlc3NNb2RlVjsKKyAgICAgICAgaWYgKCFhZGRyZXNzTW9kZVYpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkFkZHJlc3NNb2RlPiBhZGRyZXNzTW9kZVc7CisgICAgICAgIGRlY29kZXIgPj4gYWRkcmVzc01v
ZGVXOworICAgICAgICBpZiAoIWFkZHJlc3NNb2RlVykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RmlsdGVyTW9k
ZT4gbWFnRmlsdGVyOworICAgICAgICBkZWNvZGVyID4+IG1hZ0ZpbHRlcjsKKyAgICAgICAgaWYg
KCFtYWdGaWx0ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkZpbHRlck1vZGU+IG1pbkZpbHRlcjsKKyAgICAg
ICAgZGVjb2RlciA+PiBtaW5GaWx0ZXI7CisgICAgICAgIGlmICghbWluRmlsdGVyKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpGaWx0ZXJNb2RlPiBtaXBtYXBGaWx0ZXI7CisgICAgICAgIGRlY29kZXIgPj4gbWlw
bWFwRmlsdGVyOworICAgICAgICBpZiAoIW1pcG1hcEZpbHRlcikKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gbG9kTWluQ2xh
bXA7CisgICAgICAgIGRlY29kZXIgPj4gbG9kTWluQ2xhbXA7CisgICAgICAgIGlmICghbG9kTWlu
Q2xhbXApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8ZmxvYXQ+IGxvZE1heENsYW1wOworICAgICAgICBkZWNvZGVyID4+IGxvZE1heENs
YW1wOworICAgICAgICBpZiAoIWxvZE1heENsYW1wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkNvbXBhcmVGdW5jdGlvbj4+IGNvbXBhcmU7CisgICAgICAgIGRlY29kZXIgPj4gY29tcGFy
ZTsKKyAgICAgICAgaWYgKCFjb21wYXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiBtYXhBbmlzb3Ryb3B5OworICAg
ICAgICBkZWNvZGVyID4+IG1heEFuaXNvdHJvcHk7CisgICAgICAgIGlmICghbWF4QW5pc290cm9w
eSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmFkZHJlc3NNb2RlVSks
IFdURk1vdmUoKmFkZHJlc3NNb2RlViksIFdURk1vdmUoKmFkZHJlc3NNb2RlVyksIFdURk1vdmUo
Km1hZ0ZpbHRlciksIFdURk1vdmUoKm1pbkZpbHRlciksIFdURk1vdmUoKm1pcG1hcEZpbHRlciks
IFdURk1vdmUoKmxvZE1pbkNsYW1wKSwgV1RGTW92ZSgqbG9kTWF4Q2xhbXApLCBXVEZNb3ZlKCpj
b21wYXJlKSwgV1RGTW92ZSgqbWF4QW5pc290cm9weSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAppbmRleCA3YzFkYWZm
Y2JmZjVlMjg0ZjBkOTc5MmYyNDg2NWM4OGNlNTAyZmJkLi5kZDc3ODZjZThiOTY2MTE2ZDI2OWEy
NTEwYTVmMmY4MjI5YzE3MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3
IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgU3RyaW5nIGNvZGU7CiAg
ICAgLy8gSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gc291cmNlTWFwOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgY29kZTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAg
ICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVj
dERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY29kZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb2Rl
OworICAgICAgICBpZiAoIWNvZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZN
b3ZlKCpjb2RlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2ls
RmFjZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZh
Y2VTdGF0ZS5oCmluZGV4IDY1YTZiM2FhOWE1NDdmMzI2NjAyNDAwMjM5MDYxODFmYzE1YWVjMzEu
LmU0MDFiNjRjZDM1MmZmYWQwZjZhNTQ4NzU3MTMyNTk3MmQzODI0ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaApAQCAt
MzUsNiArMzUsMzkgQEAgc3RydWN0IFN0ZW5jaWxGYWNlU3RhdGUgewogICAgIFBBTDo6V2ViR1BV
OjpTdGVuY2lsT3BlcmF0aW9uIGZhaWxPcDsKICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbiBkZXB0aEZhaWxPcDsKICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbiBwYXNz
T3A7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjb21wYXJlOworICAgICAg
ICBlbmNvZGVyIDw8IGZhaWxPcDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEZhaWxPcDsKKyAg
ICAgICAgZW5jb2RlciA8PCBwYXNzT3A7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RlbmNpbEZhY2VTdGF0ZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpD
b21wYXJlRnVuY3Rpb24+IGNvbXBhcmU7CisgICAgICAgIGRlY29kZXIgPj4gY29tcGFyZTsKKyAg
ICAgICAgaWYgKCFjb21wYXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uPiBmYWls
T3A7CisgICAgICAgIGRlY29kZXIgPj4gZmFpbE9wOworICAgICAgICBpZiAoIWZhaWxPcCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbj4gZGVwdGhGYWlsT3A7CisgICAgICAgIGRlY29k
ZXIgPj4gZGVwdGhGYWlsT3A7CisgICAgICAgIGlmICghZGVwdGhGYWlsT3ApCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb24+IHBhc3NPcDsKKyAgICAgICAgZGVjb2RlciA+PiBwYXNzT3A7
CisgICAgICAgIGlmICghcGFzc09wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvbXBhcmUpLCBXVEZNb3ZlKCpmYWlsT3Ap
LCBXVEZNb3ZlKCpkZXB0aEZhaWxPcCksIFdURk1vdmUoKnBhc3NPcCkgfSB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5
b3V0LmgKaW5kZXggZjMxMDMwNjFiMDZmZTA2MmNlZWMwMzExZDIwZTAzNTI5NjljMDhmYi4uYzI1
YjFhZjM0MWFhYTA3MDE1OTYwMDU1OGUzY2I2NjcwMDE4M2E5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJp
bmRpbmdMYXlvdXQuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IFN0b3JhZ2VUZXh0dXJlQmlu
ZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzIGFjY2Vz
czsKICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdCBmb3JtYXQ7CiAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgZW5jb2RlciA8PCBhY2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgZm9ybWF0Owor
ICAgICAgICBlbmNvZGVyIDw8IHZpZXdEaW1lbnNpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzPiBhY2Nlc3M7CisgICAgICAg
IGRlY29kZXIgPj4gYWNjZXNzOworICAgICAgICBpZiAoIWFjY2VzcykKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdD4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAg
ICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uPiB2aWV3
RGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IHZpZXdEaW1lbnNpb247CisgICAgICAgIGlm
ICghdmlld0RpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCphY2Nlc3MpLCBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZN
b3ZlKCp2aWV3RGltZW5zaW9uKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVTdXBwb3J0ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVN1cHBvcnRlZEZlYXR1cmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBmMzg5MDNlMDcyNDMyMzkxODM2YzI2
NjMzM2ZjNTk1YmRjNzYyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwor
c3RydWN0IFN1cHBvcnRlZEZlYXR1cmVzIHsKKyAgICBWZWN0b3I8U3RyaW5nPiBmZWF0dXJlczsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZlYXR1cmVzOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRl
ZEZlYXR1cmVzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGZlYXR1cmVzOworICAgICAgICBkZWNvZGVyID4+IGZl
YXR1cmVzOworICAgICAgICBpZiAoIWZlYXR1cmVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZlYXR1cmVzKSB9IH07Cisg
ICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mYWNhMDNlZDRmZWUzNTE2Njg1OTM3YmNlMWQ2ZGZkMmEyYzk2ZDUwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5o
CkBAIC0wLDAgKzEsMjUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDxjc3RkaW50PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdHJ1Y3QgU3VwcG9y
dGVkTGltaXRzIHsKKyAgICB1aW50MzJfdCBtYXhUZXh0dXJlRGltZW5zaW9uMUQgeyAwIH07Cisg
ICAgdWludDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjJEIHsgMCB9OworICAgIHVpbnQzMl90IG1h
eFRleHR1cmVEaW1lbnNpb24zRCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhUZXh0dXJlQXJyYXlM
YXllcnMgeyAwIH07CisgICAgdWludDMyX3QgbWF4QmluZEdyb3VwcyB7IDAgfTsKKyAgICB1aW50
MzJfdCBtYXhEeW5hbWljVW5pZm9ybUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCB7IDAgfTsKKyAg
ICB1aW50MzJfdCBtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCB7IDAg
fTsKKyAgICB1aW50MzJfdCBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSB7IDAgfTsK
KyAgICB1aW50MzJfdCBtYXhTYW1wbGVyc1BlclNoYWRlclN0YWdlIHsgMCB9OworICAgIHVpbnQz
Ml90IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2UgeyAwIH07CisgICAgdWludDMyX3Qg
bWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UgeyAwIH07CisgICAgdWludDMyX3QgbWF4
VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50NjRfdCBtYXhVbmlm
b3JtQnVmZmVyQmluZGluZ1NpemUgeyAwIH07CisgICAgdWludDY0X3QgbWF4U3RvcmFnZUJ1ZmZl
ckJpbmRpbmdTaXplIHsgMCB9OworICAgIHVpbnQzMl90IG1pblVuaWZvcm1CdWZmZXJPZmZzZXRB
bGlnbm1lbnQgeyAwIH07CisgICAgdWludDMyX3QgbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdu
bWVudCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhWZXJ0ZXhCdWZmZXJzIHsgMCB9OworICAgIHVp
bnQzMl90IG1heFZlcnRleEF0dHJpYnV0ZXMgeyAwIH07CisgICAgdWludDMyX3QgbWF4VmVydGV4
QnVmZmVyQXJyYXlTdHJpZGUgeyAwIH07CisgICAgdWludDMyX3QgbWF4SW50ZXJTdGFnZVNoYWRl
ckNvbXBvbmVudHMgeyAwIH07CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFN0b3Jh
Z2VTaXplIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1dGVJbnZvY2F0aW9uc1Blcldvcmtn
cm91cCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVggeyAwIH07
CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVZIHsgMCB9OworICAgIHVpbnQz
Ml90IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWiB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21w
dXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbiB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBlbmNvZGVyIDw8IG1heFRleHR1cmVEaW1lbnNpb24xRDsKKyAgICAgICAgZW5jb2RlciA8PCBt
YXhUZXh0dXJlRGltZW5zaW9uMkQ7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZURpbWVu
c2lvbjNEOworICAgICAgICBlbmNvZGVyIDw8IG1heFRleHR1cmVBcnJheUxheWVyczsKKyAgICAg
ICAgZW5jb2RlciA8PCBtYXhCaW5kR3JvdXBzOworICAgICAgICBlbmNvZGVyIDw8IG1heER5bmFt
aWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBlbmNvZGVyIDw8IG1h
eER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBlbmNvZGVy
IDw8IG1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8
IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWF4U3RvcmFn
ZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9yYWdlVGV4
dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhVbmlmb3JtQnVmZmVy
c1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFVuaWZvcm1CdWZmZXJCaW5k
aW5nU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemU7
CisgICAgICAgIGVuY29kZXIgPDwgbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAg
ICAgICAgZW5jb2RlciA8PCBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50OworICAgICAg
ICBlbmNvZGVyIDw8IG1heFZlcnRleEJ1ZmZlcnM7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VmVy
dGV4QXR0cmlidXRlczsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0
cmlkZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9uZW50czsK
KyAgICAgICAgZW5jb2RlciA8PCBtYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemU7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwOworICAgICAg
ICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWDsKKyAgICAgICAgZW5jb2RlciA8
PCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVk7CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0
ZVdvcmtncm91cFNpemVaOworICAgICAgICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBz
UGVyRGltZW5zaW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZExpbWl0cz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0dXJlRGltZW5z
aW9uMUQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZURpbWVuc2lvbjFEOworICAgICAg
ICBpZiAoIW1heFRleHR1cmVEaW1lbnNpb24xRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VGV4dHVyZURpbWVu
c2lvbjJEOworICAgICAgICBkZWNvZGVyID4+IG1heFRleHR1cmVEaW1lbnNpb24yRDsKKyAgICAg
ICAgaWYgKCFtYXhUZXh0dXJlRGltZW5zaW9uMkQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVEaW1l
bnNpb24zRDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlRGltZW5zaW9uM0Q7CisgICAg
ICAgIGlmICghbWF4VGV4dHVyZURpbWVuc2lvbjNEKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0dXJlQXJy
YXlMYXllcnM7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZUFycmF5TGF5ZXJzOworICAg
ICAgICBpZiAoIW1heFRleHR1cmVBcnJheUxheWVycykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4QmluZEdyb3Vw
czsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhCaW5kR3JvdXBzOworICAgICAgICBpZiAoIW1heEJp
bmRHcm91cHMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5l
TGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBp
cGVsaW5lTGF5b3V0OworICAgICAgICBpZiAoIW1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBp
cGVsaW5lTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBl
bGluZUxheW91dDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQ
ZXJQaXBlbGluZUxheW91dDsKKyAgICAgICAgaWYgKCFtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQ
ZXJQaXBlbGluZUxheW91dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVy
U3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3Rh
Z2U7CisgICAgICAgIGlmICghbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2UpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWlu
dDMyX3Q+IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4
U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhTYW1wbGVyc1BlclNoYWRl
clN0YWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlOworICAg
ICAgICBkZWNvZGVyID4+IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAg
IGlmICghbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4U3Rv
cmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4U3RvcmFn
ZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGlmICghbWF4U3RvcmFnZVRleHR1cmVz
UGVyU2hhZGVyU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFVuaWZvcm1CdWZmZXJzUGVyU2hhZGVyU3Rh
Z2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsK
KyAgICAgICAgaWYgKCFtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBtYXhVbmlmb3JtQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VW5p
Zm9ybUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAgICBpZiAoIW1heFVuaWZvcm1CdWZmZXJCaW5k
aW5nU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAg
ICBkZWNvZGVyID4+IG1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZTsKKyAgICAgICAgaWYgKCFt
YXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1pblVuaWZvcm1CdWZmZXJP
ZmZzZXRBbGlnbm1lbnQ7CisgICAgICAgIGRlY29kZXIgPj4gbWluVW5pZm9ybUJ1ZmZlck9mZnNl
dEFsaWdubWVudDsKKyAgICAgICAgaWYgKCFtaW5Vbmlmb3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPHVpbnQzMl90PiBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50OworICAgICAgICBk
ZWNvZGVyID4+IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAgICAgIGlmICgh
bWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VmVydGV4QnVm
ZmVyczsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhCdWZmZXJzOworICAgICAgICBpZiAo
IW1heFZlcnRleEJ1ZmZlcnMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFZlcnRleEF0dHJpYnV0ZXM7CisgICAg
ICAgIGRlY29kZXIgPj4gbWF4VmVydGV4QXR0cmlidXRlczsKKyAgICAgICAgaWYgKCFtYXhWZXJ0
ZXhBdHRyaWJ1dGVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZTsKKyAgICAgICAgaWYg
KCFtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4SW50ZXJTdGFnZVNo
YWRlckNvbXBvbmVudHM7CisgICAgICAgIGRlY29kZXIgPj4gbWF4SW50ZXJTdGFnZVNoYWRlckNv
bXBvbmVudHM7CisgICAgICAgIGlmICghbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
dWludDMyX3Q+IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemU7CisgICAgICAgIGlmICghbWF4Q29t
cHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlSW52b2NhdGlv
bnNQZXJXb3JrZ3JvdXA7CisgICAgICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0ZUludm9jYXRpb25z
UGVyV29ya2dyb3VwOworICAgICAgICBpZiAoIW1heENvbXB1dGVJbnZvY2F0aW9uc1Blcldvcmtn
cm91cCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBkZWNv
ZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWDsKKyAgICAgICAgaWYgKCFtYXhDb21wdXRl
V29ya2dyb3VwU2l6ZVgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAg
ICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVk7CisgICAgICAgIGlmICgh
bWF4Q29tcHV0ZVdvcmtncm91cFNpemVZKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlV29ya2dyb3Vw
U2l6ZVo7CisgICAgICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaOworICAg
ICAgICBpZiAoIW1heENvbXB1dGVXb3JrZ3JvdXBTaXplWikKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0
ZVdvcmtncm91cHNQZXJEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0ZVdv
cmtncm91cHNQZXJEaW1lbnNpb247CisgICAgICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cHNQ
ZXJEaW1lbnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHJldHVybiB7IHsKKyAgICAgICAgICAgICptYXhUZXh0dXJlRGltZW5zaW9uMUQsCisgICAgICAg
ICAgICAqbWF4VGV4dHVyZURpbWVuc2lvbjJELAorICAgICAgICAgICAgKm1heFRleHR1cmVEaW1l
bnNpb24zRCwKKyAgICAgICAgICAgICptYXhUZXh0dXJlQXJyYXlMYXllcnMsCisgICAgICAgICAg
ICAqbWF4QmluZEdyb3VwcywKKyAgICAgICAgICAgICptYXhEeW5hbWljVW5pZm9ybUJ1ZmZlcnNQ
ZXJQaXBlbGluZUxheW91dCwKKyAgICAgICAgICAgICptYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQ
ZXJQaXBlbGluZUxheW91dCwKKyAgICAgICAgICAgICptYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFk
ZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhTYW1wbGVyc1BlclNoYWRlclN0YWdlLAorICAgICAg
ICAgICAgKm1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgICAgICAqbWF4
U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgICAgICAqbWF4VW5pZm9ybUJ1
ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhVbmlmb3JtQnVmZmVyQmluZGlu
Z1NpemUsCisgICAgICAgICAgICAqbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplLAorICAgICAg
ICAgICAgKm1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQsCisgICAgICAgICAgICAqbWlu
U3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAgICAgICptYXhWZXJ0ZXhCdWZm
ZXJzLAorICAgICAgICAgICAgKm1heFZlcnRleEF0dHJpYnV0ZXMsCisgICAgICAgICAgICAqbWF4
VmVydGV4QnVmZmVyQXJyYXlTdHJpZGUsCisgICAgICAgICAgICAqbWF4SW50ZXJTdGFnZVNoYWRl
ckNvbXBvbmVudHMsCisgICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXpl
LAorICAgICAgICAgICAgKm1heENvbXB1dGVJbnZvY2F0aW9uc1Blcldvcmtncm91cCwKKyAgICAg
ICAgICAgICptYXhDb21wdXRlV29ya2dyb3VwU2l6ZVgsCisgICAgICAgICAgICAqbWF4Q29tcHV0
ZVdvcmtncm91cFNpemVZLAorICAgICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWiwK
KyAgICAgICAgICAgICptYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbiwKKyAgICAgICAg
fSB9OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xh
eW91dC5oCmluZGV4IDA2OTI2NDRlYjA5YWZlNWJkODcyOTdkYTljZjBmYjFjZTgyMWY4ZmUuLmEy
OWI5Y2YyZDc4ZTkyNWQwYmEwM2RjNjIzOGFlNzQ5ZjMwODBmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5o
CkBAIC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQgewogICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZSBzYW1wbGVUeXBlOwogICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlVmlld0RpbWVuc2lvbiB2aWV3RGltZW5zaW9uOwogICAgIGJvb2wgbXVsdGlzYW1w
bGVkOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlVHlwZTsKKyAg
ICAgICAgZW5jb2RlciA8PCB2aWV3RGltZW5zaW9uOworICAgICAgICBlbmNvZGVyIDw8IG11bHRp
c2FtcGxlZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxUZXh0dXJlQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxl
VHlwZT4gc2FtcGxlVHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVUeXBlOworICAgICAg
ICBpZiAoIXNhbXBsZVR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uPiB2
aWV3RGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IHZpZXdEaW1lbnNpb247CisgICAgICAg
IGlmICghdmlld0RpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBtdWx0aXNhbXBsZWQ7CisgICAgICAgIGRlY29k
ZXIgPj4gbXVsdGlzYW1wbGVkOworICAgICAgICBpZiAoIW11bHRpc2FtcGxlZCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpz
YW1wbGVUeXBlKSwgV1RGTW92ZSgqdmlld0RpbWVuc2lvbiksIFdURk1vdmUoKm11bHRpc2FtcGxl
ZCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRv
ci5oCmluZGV4IDMxYTA2NmU2NTA0NWE1Zjk3NWRiMTRjNmU3YjEwYTVmZjE3Yjk5MWIuLjMzMjIx
N2JhNjEyNTJjMTQ4MDdiZTY0ODgwMjllMzVkOGVjNTI1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCkBAIC00MSw2
ICs0MSw1NyBAQCBzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3Jp
cHRvckJhc2UgewogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uIGRpbWVuc2lvbjsK
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdCBmb3JtYXQ7CiAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVVc2FnZUZsYWdzIHVzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7Cisg
ICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtaXBMZXZlbENvdW50
OworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZUNvdW50OworICAgICAgICBlbmNvZGVyIDw8IGRp
bWVuc2lvbjsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwg
dXNhZ2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VGV4dHVyZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7Cisg
ICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXh0ZW50M0Q+IHNpemU7CisgICAg
ICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZT4gbWlwTGV2ZWxDb3VudDsKKyAgICAgICAgZGVjb2RlciA+PiBtaXBM
ZXZlbENvdW50OworICAgICAgICBpZiAoIW1pcExldmVsQ291bnQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNp
emUzMj4gc2FtcGxlQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlQ291bnQ7CisgICAg
ICAgIGlmICghc2FtcGxlQ291bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24+IGRp
bWVuc2lvbjsKKyAgICAgICAgZGVjb2RlciA+PiBkaW1lbnNpb247CisgICAgICAgIGlmICghZGlt
ZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRl
Y29kZXIgPj4gZm9ybWF0OworICAgICAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4
dHVyZVVzYWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAg
ICBpZiAoIXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqc2l6
ZSksIFdURk1vdmUoKm1pcExldmVsQ291bnQpLCBXVEZNb3ZlKCpzYW1wbGVDb3VudCksIFdURk1v
dmUoKmRpbWVuc2lvbiksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKnVzYWdlKSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3Iu
aAppbmRleCBmZmE1NmU1M2JiYTA5MjA5YWJiZDVmMWU0OWMyNmFkYzIzZTU3NGVhLi5hODE3NDM1
NWUxZDY5ZjMzNjgyOWY2NDIzZjAzMTIyZTk5ZmU4OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oCkBA
IC00Miw2ICs0Miw2MyBAQCBzdHJ1Y3QgVGV4dHVyZVZpZXdEZXNjcmlwdG9yIDogcHVibGljIE9i
amVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZT4gbWlwTGV2ZWxDb3VudDsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNv
b3JkaW5hdGUgYmFzZUFycmF5TGF5ZXI7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
SW50ZWdlckNvb3JkaW5hdGU+IGFycmF5TGF5ZXJDb3VudDsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4o
KnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBk
aW1lbnNpb247CisgICAgICAgIGVuY29kZXIgPDwgYXNwZWN0OworICAgICAgICBlbmNvZGVyIDw8
IGJhc2VNaXBMZXZlbDsKKyAgICAgICAgZW5jb2RlciA8PCBtaXBMZXZlbENvdW50OworICAgICAg
ICBlbmNvZGVyIDw8IGJhc2VBcnJheUxheWVyOworICAgICAgICBlbmNvZGVyIDw8IGFycmF5TGF5
ZXJDb3VudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxUZXh0dXJlVmlld0Rlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJh
c2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBm
b3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlRleHR1cmVWaWV3RGltZW5zaW9uPj4gZGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IGRp
bWVuc2lvbjsKKyAgICAgICAgaWYgKCFkaW1lbnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVB
c3BlY3Q+IGFzcGVjdDsKKyAgICAgICAgZGVjb2RlciA+PiBhc3BlY3Q7CisgICAgICAgIGlmICgh
YXNwZWN0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYmFzZU1pcExldmVsOwor
ICAgICAgICBkZWNvZGVyID4+IGJhc2VNaXBMZXZlbDsKKyAgICAgICAgaWYgKCFiYXNlTWlwTGV2
ZWwpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+PiBtaXBM
ZXZlbENvdW50OworICAgICAgICBkZWNvZGVyID4+IG1pcExldmVsQ291bnQ7CisgICAgICAgIGlm
ICghbWlwTGV2ZWxDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGJhc2VB
cnJheUxheWVyOworICAgICAgICBkZWNvZGVyID4+IGJhc2VBcnJheUxheWVyOworICAgICAgICBp
ZiAoIWJhc2VBcnJheUxheWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJD
b29yZGluYXRlPj4gYXJyYXlMYXllckNvdW50OworICAgICAgICBkZWNvZGVyID4+IGFycmF5TGF5
ZXJDb3VudDsKKyAgICAgICAgaWYgKCFhcnJheUxheWVyQ291bnQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVz
Y3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpkaW1lbnNpb24pLCBXVEZN
b3ZlKCphc3BlY3QpLCBXVEZNb3ZlKCpiYXNlTWlwTGV2ZWwpLCBXVEZNb3ZlKCptaXBMZXZlbENv
dW50KSwgV1RGTW92ZSgqYmFzZUFycmF5TGF5ZXIpLCBXVEZNb3ZlKCphcnJheUxheWVyQ291bnQp
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQyNDgxMDJkZjZmNDBmYWRhZjhhYWYwNjE5YzU4MjE0NWE1OTZmMTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlv
bkVycm9yLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CisKK3N0cnVjdCBWYWxpZGF0aW9uRXJyb3IgeworICAgIFN0cmluZyBtZXNzYWdlOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVzc2FnZTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYWxpZGF0aW9uRXJy
b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IG1lc3NhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKKyAgICAgICAg
aWYgKCFtZXNzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKm1lc3NhZ2UpIH0gfTsKKyAgICB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oCmluZGV4IGExYjUzYzk3Yzc5YjU3OTNjOTdlNjFm
YjNhYTdiZDYzYmUzNjlhNzMuLmY5M2ZiY2Q2MmMxMjg5MDczYzRhOTY3MWZiMmI2NjA2ZGQwZGQz
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhB
dHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4
QXR0cmlidXRlLmgKQEAgLTM1LDYgKzM1LDMzIEBAIHN0cnVjdCBWZXJ0ZXhBdHRyaWJ1dGUgewog
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0OwogCiAgICAgUEFMOjpXZWJHUFU6OkluZGV4
MzIgc2hhZGVyTG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBm
b3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8IHNo
YWRlckxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlcnRleEF0dHJpYnV0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ+
IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZz
ZXQ7CisgICAgICAgIGlmICghb2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRleDMyPiBzaGFkZXJM
b2NhdGlvbjsKKyAgICAgICAgZGVjb2RlciA+PiBzaGFkZXJMb2NhdGlvbjsKKyAgICAgICAgaWYg
KCFzaGFkZXJMb2NhdGlvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpvZmZzZXQpLCBXVEZN
b3ZlKCpzaGFkZXJMb2NhdGlvbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVmVydGV4QnVmZmVyTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKaW5kZXggMDM3Nzc0YjFiNzE4OWUzNjVlODIzMGIzZmIx
NjI4M2M2ODA3MTQ2Yi4uMjMxMDJkY2RiMzQ0MjRiN2E4MWI1ZGYyMjJmZGNkMDVkMDIzNThlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZl
ckxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhC
dWZmZXJMYXlvdXQuaApAQCAtMzYsNiArMzYsMzMgQEAgc3RydWN0IFZlcnRleEJ1ZmZlckxheW91
dCB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBhcnJheVN0cmlkZTsKICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4U3RlcE1vZGUgc3RlcE1vZGU7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJpYnV0ZT4g
YXR0cmlidXRlczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGFycmF5U3Ry
aWRlOworICAgICAgICBlbmNvZGVyIDw8IHN0ZXBNb2RlOworICAgICAgICBlbmNvZGVyIDw8IGF0
dHJpYnV0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8VmVydGV4QnVmZmVyTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gYXJyYXlT
dHJpZGU7CisgICAgICAgIGRlY29kZXIgPj4gYXJyYXlTdHJpZGU7CisgICAgICAgIGlmICghYXJy
YXlTdHJpZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlPiBzdGVwTW9kZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBzdGVwTW9kZTsKKyAgICAgICAgaWYgKCFzdGVwTW9kZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
VmVydGV4QXR0cmlidXRlPj4gYXR0cmlidXRlczsKKyAgICAgICAgZGVjb2RlciA+PiBhdHRyaWJ1
dGVzOworICAgICAgICBpZiAoIWF0dHJpYnV0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYXJyYXlTdHJpZGUpLCBXVEZN
b3ZlKCpzdGVwTW9kZSksIFdURk1vdmUoKmF0dHJpYnV0ZXMpIH0gfTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaAppbmRleCA4NDI0NzEzZGRjZDQ5OGY2YjYwMWM0MDgy
YzcxOTdlMWRiZTJiYjU5Li40NmZmOGM3NTQzZWMwMmFhMjFkNmRlZDdhZDllMWYxNDgyMDExZTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3Rh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUu
aApAQCAtMzQsNiArMzQsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0
IFZlcnRleFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBWZWN0b3I8c3Rk
OjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+PiBidWZmZXJzOworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7
CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUHJvZ3JhbW1hYmxlU3RhZ2Um
PigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVyczsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZXJ0ZXhTdGF0ZT4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb2dy
YW1tYWJsZVN0YWdlPiBwcm9ncmFtbWFibGVTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBwcm9n
cmFtbWFibGVTdGFnZTsKKyAgICAgICAgaWYgKCFwcm9ncmFtbWFibGVTdGFnZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
c3RkOjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+Pj4gYnVmZmVyczsKKyAgICAgICAgZGVj
b2RlciA+PiBidWZmZXJzOworICAgICAgICBpZiAoIWJ1ZmZlcnMpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcHJvZ3JhbW1h
YmxlU3RhZ2UpLCBXVEZNb3ZlKCpidWZmZXJzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDY3NmRhZGRhYzg4MzE5NmM2YTM0
NGE5ZmIxYTZkNGNkNDFhZjhjYmIuLmYzY2RlN2ZlMmQyN2YwZDQyYjM3MDJkYjU3NGMxNDkyNmEz
ZjBiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNzYwLDMgKzc2MCwyNiBAQCBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VS
ZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFdl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKKworUmVtb3RlQWRh
cHRlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZUJpbmRHcm91cExheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUJ1ZmZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUNvbW1hbmRCdWZmZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCitSZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUNvbXB1dGVQaXBlbGluZU1l
c3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZURldmljZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90
ZUV4dGVybmFsVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUdQVU1lc3NhZ2VSZWNl
aXZlci5jcHAKK1JlbW90ZVBpcGVsaW5lTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3Rl
UXVlcnlTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVRdWV1ZU1lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZVJlbmRlckJ1bmRsZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlckJ1
bmRsZUVuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1l
c3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZVJlY2VpdmVyLmNw
cAorUmVtb3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVNoYWRlck1vZHVsZU1l
c3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1v
dGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ1M2I2Y2U5ZWJkMDNjM2RkYTBiMzk4
ZjhiZTgwMDk1MGZkMzY0ZGYuLjcyMDM4ZTg3ZTNlM2Y3MDk5Zjg0MDIzNDRhYzljZGM5MTM3OTUw
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzg2LDYgKzM4NiwyOSBAQAogCQkxQzhFMjkzOTEyNzYxRTVCMDBCQzdCRDAgLyogV0tJ
bnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDOEUyOTM3MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDOEUyQTM1MTI3Nzg1MjQwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8q
IFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFDOEUyQTM2MTI3Nzg1
MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJBMzIxMjc3ODUyNDAwQkM3QkQwIC8qIFdl
Ykluc3BlY3Rvck1lc3NhZ2VzLmggKi87IH07CisJCTFDOThDMDNEMjc0NDZCNzMwMDJDQ0I3OCAv
KiBXZWJHUFVPYmplY3RIZWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDOThDMDI0Mjc0NDZBMDUwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFw
LmNwcCAqLzsgfTsKKwkJMUM5OEMwM0UyNzQ0NkI3MzAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMw
MzUyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUuY3BwICovOyB9OworCQkxQzk4QzAz
RjI3NDQ2QjczMDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyQnVuZGxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDM5Mjc0NDZBMDkwMDJDQ0I3
OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUuY3BwICovOyB9OworCQkxQzk4QzA0MDI3NDQ2QjczMDAy
Q0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwMzEyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90
ZVBpcGVsaW5lTGF5b3V0LmNwcCAqLzsgfTsKKwkJMUM5OEMwNDEyNzQ0NkI3MzAwMkNDQjc4IC8q
IFJlbW90ZVNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUM5OEMwMjgyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIuY3BwICov
OyB9OworCQkxQzk4QzA0MjI3NDQ2QjczMDAyQ0NCNzggLyogUmVtb3RlR1BVLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDFEMjc0NDZBMDMw
MDJDQ0I3OCAvKiBSZW1vdGVHUFUuY3BwICovOyB9OworCQkxQzk4QzA0MzI3NDQ2QjczMDAyQ0NC
NzggLyogUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzAyQjI3NDQ2QTA3MDAyQ0NCNzggLyogUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAgKi87IH07CisJCTFDOThDMDQ0Mjc0NDZCNzMwMDJD
Q0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwMjMyNzQ0NkEwNTAwMkNDQjc4IC8qIFJlbW90ZVNo
YWRlck1vZHVsZS5jcHAgKi87IH07CisJCTFDOThDMDQ1Mjc0NDZCNzMwMDJDQ0I3OCAvKiBSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzk4QzAyNjI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFz
c0VuY29kZXIuY3BwICovOyB9OworCQkxQzk4QzA0NjI3NDQ2QjczMDAyQ0NCNzggLyogUmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDOThDMDJBMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1
cmUuY3BwICovOyB9OworCQkxQzk4QzA0NzI3NDQ2QjczMDAyQ0NCNzggLyogUmVtb3RlVGV4dHVy
ZVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwMzYyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNwcCAqLzsgfTsK
KwkJMUM5OEMwNDgyNzQ0NkI3MzAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDNBMjc0NDZBMDkw
MDJDQ0I3OCAvKiBSZW1vdGVRdWVyeVNldC5jcHAgKi87IH07CisJCTFDOThDMDQ5Mjc0NDZCNzMw
MDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwM0IyNzQ0NkEwQTAwMkNDQjc4IC8qIFJl
bW90ZUNvbXB1dGVQaXBlbGluZS5jcHAgKi87IH07CisJCTFDOThDMDRBMjc0NDZCNzMwMDJDQ0I3
OCAvKiBSZW1vdGVEZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM5OEMwMkYyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5jcHAg
Ki87IH07CisJCTFDOThDMDRCMjc0NDZCNzMwMDJDQ0I3OCAvKiBSZW1vdGVRdWV1ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzAyMTI3NDQ2
QTA0MDAyQ0NCNzggLyogUmVtb3RlUXVldWUuY3BwICovOyB9OworCQkxQzk4QzA0QzI3NDQ2Qjcz
MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwMzMyNzQ0NkEwODAwMkNDQjc4IC8qIFJl
bW90ZVJlbmRlclBpcGVsaW5lLmNwcCAqLzsgfTsKKwkJMUM5OEMwNUMyNzQ0NkNCQTAwMkNDQjc4
IC8qIFJlbW90ZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzk4QzA0RTI3NDQ2Q0I3MDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLmNwcCAq
LzsgfTsKKwkJMUM5OEMwNUUyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMw
NTAyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIuY3BwICovOyB9OworCQkx
Qzk4QzA1RjI3NDQ2Q0JBMDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDUxMjc0NDZD
QjgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwICovOyB9OworCQkxQzk4QzA2
MDI3NDQ2Q0JBMDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDUyMjc0NDZDQjgwMDJDQ0I3OCAv
KiBSZW1vdGVCaW5kR3JvdXAuY3BwICovOyB9OworCQkxQzk4QzA2NDI3NDQ2Q0JBMDAyQ0NCNzgg
LyogUmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwNTYyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1h
bmRFbmNvZGVyLmNwcCAqLzsgfTsKKwkJMUM5OEMwNjYyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzk4QzA1ODI3NDQ2Q0JBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBh
c3NFbmNvZGVyLmNwcCAqLzsgfTsKKwkJMUM5OEMwNjcyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90
ZUFkYXB0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUM5OEMwNTkyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICovOyB9Owog
CQkxQ0E4Qjk0NTEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0E4Qjk0MzEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNw
ZWN0b3JVSVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVBy
b3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNCNzQ2NEQyNzQzODBDODAwRjE5ODc0IC8qIFdlYkdQ
VURvd25jYXN0Q29udmVydFRvQmFja2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQjc0NjRCMjc0MzgwQzgwMEYxOTg3NCAvKiBXZWJH
UFVEb3duY2FzdENvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmggKi87IH07CkBAIC0yODk1LDYgKzI5
MTgsODAgQEAKIAkJMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJ
bnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQkxQzhFMkEzMjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9y
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9y
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUM4RTJEQUQx
Mjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclVJTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yVUlNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDFEMjc0NDZBMDMwMDJDQ0I3OCAvKiBSZW1vdGVHUFUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwMUUyNzQ0NkEwMzAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdEhlYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVT2JqZWN0SGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzAxRjI3NDQ2QTAzMDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlUXVlcnlTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwMjAyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJCdW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwMjEyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwMjIyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29k
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyMzI3NDQ2QTA1MDAyQ0NCNzggLyogUmVtb3Rl
U2hhZGVyTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDI0Mjc0NDZBMDUwMDJDQ0I3
OCAvKiBXZWJHUFVPYmplY3RIZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9iamVj
dEhlYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyNTI3NDQ2QTA2
MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDI2Mjc0NDZBMDYwMDJDQ0I3
OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDI3Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzAyODI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwMjkyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVs
aW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRlclBpcGVsaW5lLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJBMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVFeHRl
cm5hbFRleHR1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlRXh0ZXJuYWxUZXh0dXJl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMkIyNzQ0NkEwNzAwMkND
Qjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwMkQyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDJFMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzAyRjI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlRGV2aWNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZURldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDMwMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVRdWV1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAz
MTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAzMjI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlRXh0ZXJuYWxUZXh0dXJl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUV4dGVybmFsVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzAzMzI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVy
UGlwZWxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzNDI3NDQ2QTA5MDAyQ0NCNzgg
LyogUmVtb3RlU2hhZGVyTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzNTI3NDQ2QTA5MDAyQ0NC
NzggLyogUmVtb3RlVGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVUZXh0dXJl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzYyNzQ0NkEwOTAwMkND
Qjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVRl
eHR1cmVWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzcyNzQ0
NkEwOTAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVEZXZp
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzgyNzQ0NkEwOTAwMkND
Qjc4IC8qIFJlbW90ZUdQVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVHUFUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzkyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJl
bmRlckJ1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZW5kZXJCdW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzQTI3NDQ2QTA5MDAyQ0NCNzgg
LyogUmVtb3RlUXVlcnlTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUXVlcnlTZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzQjI3NDQ2QTBBMDAyQ0NC
NzggLyogUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZUNvbXB1dGVQaXBlbGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDNDMjc0NDZBMEEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDREMjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDRFMjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQnVmZmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNEYyNzQ0NkNCODAwMkNDQjc4IC8q
IFJlbW90ZUFkYXB0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
QWRhcHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1MDI3NDQ2Q0I4
MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDb21tYW5kQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTEyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91
cExheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVC
aW5kR3JvdXBMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1
MjI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDUzMjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3Jv
dXBMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQmluZEdy
b3VwTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU0Mjc0NDZD
QjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlQmluZEdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDU1Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDb21tYW5kRW5jb2Rlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NjI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVt
b3RlQ29tbWFuZEVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA1NzI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDb21tYW5kQnVmZmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU4Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1v
dGVDb21wdXRlUGFzc0VuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwNTkyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQWRhcHRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDVBMjc0NDZDQkEwMDJDQ0I3OCAvKiBS
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDc5Mjc0NEExQ0MwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9y
dGVkTGltaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVN1cHBvcnRlZExpbWl0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3QzI3NDRCOTkx
MDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
UFVPdXRPZk1lbW9yeUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViR1BVVmFsaWRhdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDdFMjc0NEI5REIwMDJDQ0I3OCAvKiBXZWJHUFVFcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHUFVFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4
MDI3NDRCRDk3MDAyQ0NCNzggLyogUmVtb3RlUXVldWUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
UXVldWUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDgx
Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODIyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFs
VGV4dHVyZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDgzMjc0NEJEOTgwMDJDQ0I3
OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyQnVu
ZGxlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NDI3
NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwODUyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NjI3NDRCRDk5MDAyQ0NCNzggLyogUmVt
b3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg3Mjc0NEJE
OTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVRleHR1
cmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg4Mjc0
NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwODkyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEEyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1
bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEIyNzQ0QkQ5
OTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVF1ZXJ5
U2V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4QzI3
NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
bW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwOEUyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDhGMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1v
dGVEZXZpY2UubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5MDI3NDRCRDlBMDAyQ0NCNzggLyogUmVt
b3RlQnVmZmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJl
bW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTIyNzQ0QkQ5QjAwMkNDQjc4IC8q
IFJlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXAubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDkzMjc0NEJEOUIwMDJD
Q0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzA5NDI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlR1BVLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJlbW90ZUdQVS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwOTUyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQzlFQkE1QjIwODdFNzRFMDAwNTQ0MjkgLyogTmF0aXZlV2ViTW91
c2VFdmVudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5h
dGl2ZVdlYk1vdXNlRXZlbnRJT1MubW07IHBhdGggPSBpb3MvTmF0aXZlV2ViTW91c2VFdmVudElP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBOEI5MzUxMjdDNzc0RTAwNTc2
QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0E4Qjk0MzEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9y
VUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC03MTgxLDYgKzcyNzgs
ODEgQEAKIAkJCXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJMUM5OEMwMUMyNzQ0NjkyNjAwMkNDQjc4IC8qIFdlYkdQVSAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM5OEMwNTkyNzQ0NkNCQTAwMkND
Qjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICovLAorCQkJCTFDOThDMDRGMjc0NDZDQjgwMDJDQ0I3
OCAvKiBSZW1vdGVBZGFwdGVyLmggKi8sCisJCQkJMUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8q
IFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTIyNzQ0NkNCODAwMkND
Qjc4IC8qIFJlbW90ZUJpbmRHcm91cC5jcHAgKi8sCisJCQkJMUM5OEMwNTQyNzQ0NkNCOTAwMkND
Qjc4IC8qIFJlbW90ZUJpbmRHcm91cC5oICovLAorCQkJCTFDOThDMDkyMjc0NEJEOUIwMDJDQ0I3
OCAvKiBSZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTEyNzQ0NkNC
ODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5jcHAgKi8sCisJCQkJMUM5OEMwNTMy
NzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5oICovLAorCQkJCTFDOThD
MDg0Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4g
Ki8sCisJCQkJMUM5OEMwNEUyNzQ0NkNCNzAwMkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5jcHAgKi8s
CisJCQkJMUM5OEMwNEQyNzQ0NkNCNzAwMkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5oICovLAorCQkJ
CTFDOThDMDkwMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwNTAyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIuY3Bw
ICovLAorCQkJCTFDOThDMDU3Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVy
LmggKi8sCisJCQkJMUM5OEMwODkyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZm
ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTYyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90
ZUNvbW1hbmRFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzA1NTI3NDQ2Q0I5MDAyQ0NCNzggLyog
UmVtb3RlQ29tbWFuZEVuY29kZXIuaCAqLywKKwkJCQkxQzk4QzA5NTI3NDRCRDlCMDAyQ0NCNzgg
LyogUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTgyNzQ0
NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAgKi8sCisJCQkJMUM5
OEMwNUEyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oICovLAor
CQkJCTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwM0IyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNv
bXB1dGVQaXBlbGluZS5jcHAgKi8sCisJCQkJMUM5OEMwM0MyNzQ0NkEwQTAwMkNDQjc4IC8qIFJl
bW90ZUNvbXB1dGVQaXBlbGluZS5oICovLAorCQkJCTFDOThDMDhFMjc0NEJEOUEwMDJDQ0I3OCAv
KiBSZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkYyNzQ0
NkEwODAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5jcHAgKi8sCisJCQkJMUM5OEMwMzcyNzQ0NkEw
OTAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5oICovLAorCQkJCTFDOThDMDhGMjc0NEJEOUEwMDJD
Q0I3OCAvKiBSZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkEyNzQ0NkEw
NzAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAgKi8sCisJCQkJMUM5OEMwMzIy
NzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5oICovLAorCQkJCTFDOThD
MDgyMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4g
Ki8sCisJCQkJMUM5OEMwMUQyNzQ0NkEwMzAwMkNDQjc4IC8qIFJlbW90ZUdQVS5jcHAgKi8sCisJ
CQkJMUM5OEMwMzgyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZUdQVS5oICovLAorCQkJCTFDOThD
MDk0Mjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVHUFUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5
OEMwMzEyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKKwkJ
CQkxQzk4QzAyRDI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQuaCAqLywK
KwkJCQkxQzk4QzA4NTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwM0EyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5
U2V0LmNwcCAqLywKKwkJCQkxQzk4QzAxRjI3NDQ2QTAzMDAyQ0NCNzggLyogUmVtb3RlUXVlcnlT
ZXQuaCAqLywKKwkJCQkxQzk4QzA4QjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjEyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVF1
ZXVlLmNwcCAqLywKKwkJCQkxQzk4QzAzMDI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUXVldWUu
aCAqLywKKwkJCQkxQzk4QzA4MDI3NDRCRDk3MDAyQ0NCNzggLyogUmVtb3RlUXVldWUubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwMzkyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1
bmRsZS5jcHAgKi8sCisJCQkJMUM5OEMwMjAyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRl
ckJ1bmRsZS5oICovLAorCQkJCTFDOThDMDgzMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5k
ZXJCdW5kbGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkIyNzQ0NkEwNzAwMkNDQjc4IC8q
IFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwICovLAorCQkJCTFDOThDMDIyMjc0NDZBMDQw
MDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmggKi8sCisJCQkJMUM5OEMwOEEy
NzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4g
Ki8sCisJCQkJMUM5OEMwMjYyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBhc3NFbmNv
ZGVyLmNwcCAqLywKKwkJCQkxQzk4QzAyNzI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXIuaCAqLywKKwkJCQkxQzk4QzA4MTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzMyNzQ0NkEwODAw
MkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmNwcCAqLywKKwkJCQkxQzk4QzAyOTI3NDQ2
QTA3MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUuaCAqLywKKwkJCQkxQzk4QzA4NjI3
NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMUM5OEMwMjgyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIuY3BwICovLAorCQkJ
CTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLmggKi8sCisJCQkJMUM5
OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMUM5OEMwMjMyNzQ0NkEwNTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5jcHAgKi8s
CisJCQkJMUM5OEMwMzQyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5oICov
LAorCQkJCTFDOThDMDhDMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1bGUubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzUyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1
cmUuY3BwICovLAorCQkJCTFDOThDMDI1Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJl
LmggKi8sCisJCQkJMUM5OEMwODcyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzYyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1
cmVWaWV3LmNwcCAqLywKKwkJCQkxQzk4QzAyRTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlVGV4
dHVyZVZpZXcuaCAqLywKKwkJCQkxQzk4QzA4ODI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlVGV4
dHVyZVZpZXcubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjQyNzQ0NkEwNTAwMkNDQjc4IC8q
IFdlYkdQVU9iamVjdEhlYXAuY3BwICovLAorCQkJCTFDOThDMDFFMjc0NDZBMDMwMDJDQ0I3OCAv
KiBXZWJHUFVPYmplY3RIZWFwLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFdlYkdQVTsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFDQjc0NjE5Mjc0MzZERTMwMEYxOTg3NCAv
KiBXZWJHUFUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
NzI1MSw2ICs3NDIzLDcgQEAKIAkJCQkxQ0I3NDY3OTI3NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BV
Q29sb3JUYXJnZXRTdGF0ZS5oICovLAogCQkJCTFDQjc0NjgzMjc0MzlDQjUwMEYxOTg3NCAvKiBX
ZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NjkyMjc0MzlDQjkw
MEYxOTg3NCAvKiBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4
QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8sCiAJ
CQkJMUNCNzQ2OTcyNzQzOUNCQTAwRjE5ODc0IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRv
ci5oICovLAogCQkJCTFDQjc0Njg5Mjc0MzlDQjYwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGFz
c1RpbWVzdGFtcFdyaXRlcy5oICovLAogCQkJCTFDQjc0Njc2Mjc0MzlDQjEwMEYxOTg3NCAvKiBX
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCkBAIC03MjU4LDYgKzc0MzEsNyBA
QAogCQkJCTFDQjc0NjQ3Mjc0MzdBN0YwMEYxOTg3NCAvKiBXZWJHUFVDb252ZXJ0VG9CYWNraW5n
Q29udGV4dC5oICovLAogCQkJCTFDQjc0NjcxMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVEZXB0
aFN0ZW5jaWxTdGF0ZS5oICovLAogCQkJCTFDQjc0Njg1Mjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJH
UFVEZXZpY2VEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwN0UyNzQ0QjlEQjAwMkNDQjc4IC8q
IFdlYkdQVUVycm9yLmggKi8sCiAJCQkJMUNCNzQ2ODcyNzQzOUNCNjAwRjE5ODc0IC8qIFdlYkdQ
VUV4dGVudDNELmggKi8sCiAJCQkJMUNCNzQ2NkYyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywKIAkJCQkxQ0I3NDY4NjI3NDM5Q0I1MDBG
MTk4NzQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oICovLApAQCAtNzI3Miw2
ICs3NDQ2LDcgQEAKIAkJCQkxQ0I3NDY2QzI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQkxQ0I3NDY3MDI3NDM5Q0IwMDBGMTk4NzQgLyogV2Vi
R1BVT3JpZ2luMkQuaCAqLywKIAkJCQkxQ0I3NDZBMDI3NDM5Q0JEMDBGMTk4NzQgLyogV2ViR1BV
T3JpZ2luM0QuaCAqLywKKwkJCQkxQzk4QzA3QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0
T2ZNZW1vcnlFcnJvci5oICovLAogCQkJCTFDQjc0Njk0Mjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJH
UFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJMUNCNzQ2OTgyNzQzOUNCQjAwRjE5
ODc0IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NjZE
Mjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVQcmltaXRpdmVTdGF0ZS5oICovLApAQCAtNzI5MSw5
ICs3NDY2LDEyIEBACiAJCQkJMUNCNzQ2NkIyNzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVVNoYWRl
ck1vZHVsZURlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDY3MzI3NDM5Q0IxMDBGMTk4NzQgLyog
V2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oICovLAogCQkJCTFDQjc0Njk2Mjc0MzlDQkEwMEYxOTg3
NCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA3
OTI3NDRBMUNDMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCAqLywKKwkJCQkx
Qzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8sCiAJ
CQkJMUNCNzQ2NzUyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0
LmggKi8sCiAJCQkJMUNCNzQ2ODEyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVEZXNj
cmlwdG9yLmggKi8sCiAJCQkJMUNCNzQ2ODAyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1
cmVWaWV3RGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBX
ZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLywKIAkJCQkxQ0I3NDY3MjI3NDM5Q0IwMDBGMTk4NzQg
LyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmggKi8sCiAJCQkJMUNCNzQ2OEYyNzQzOUNCODAwRjE5
ODc0IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oICovLAogCQkJCTFDQjc0NjlBMjc0MzlD
QkIwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5oICovLApAQCAtOTA0Nyw2ICs5MjI1LDcg
QEAKIAkJNTUwNjQwQTEyNDA3MUEyOTAwQUFFMDQ1IC8qIGdyYXBoaWNzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzk4QzAxQzI3NDQ2OTI2MDAyQ0NC
NzggLyogV2ViR1BVICovLAogCQkJCUY0MDk0Q0JDMjU1MzA0QUYwMDNENzNFMyAvKiBEaXNwbGF5
TGlzdFJlYWRlckhhbmRsZS5jcHAgKi8sCiAJCQkJRjQwOTRDQkIyNTUzMDRBRjAwM0Q3M0UzIC8q
IERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggKi8sCiAJCQkJN0IxNjE5MTMyNzE5QUU3NjAwQzQw
RUFDIC8qIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oICovLApAQCAtMTQ0NjYsNyArMTQ2
NDUsMTEgQEAKIAkJCQkyRDU0QzMxQjIxMkY0REE2MDA0OUMxNzQgLyogUHJvY2Vzc0xhdW5jaGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEMyMjdGMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlj
a0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEMyMjVF
MjQzNTc1Q0QwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIubW0gaW4gU291cmNl
cyAqLywKKwkJCQkxQzk4QzA2NzI3NDQ2Q0JBMDAyQ0NCNzggLyogUmVtb3RlQWRhcHRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwNjAyNzQ0
NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
Qzk4QzA1RjI3NDQ2Q0JBMDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDOThDMDVDMjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEQUMyMEY3MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBNkQ0NTEyNUE5ODlDNzAwNEIx
REY2IC8qIFJlbW90ZUNETUluc3RhbmNlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTQ0NzQsNiArMTQ2NTcsMTMgQEAKIAkJCQlDRDQ2NjE4MzI0MDEwQTY3MDA0N0NBMzUg
LyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEQUMyMEY5MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFDMjBG
QTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwNUUyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1h
bmRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwNjQyNzQ0NkNCQTAwMkNDQjc4
IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMDY2
Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUM5OEMwNDkyNzQ0NkI3MzAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBl
bGluZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzA0QTI3NDQ2QjczMDAyQ0NCNzggLyog
UmVtb3RlRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMDQ2Mjc0NDZCNzMwMDJD
Q0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5
OEMwNDIyNzQ0NkI3MzAwMkNDQjc4IC8qIFJlbW90ZUdQVS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3Mu
bW0gaW4gU291cmNlcyAqLywKQEAgLTE0NDg4LDEwICsxNDY3OCwyMSBAQAogCQkJCTFENEQ3Mzcw
MjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxREQyQTY2MzI1NjEyNDZGMDBGRjdCNkYgLyog
UmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUMxMzM4NTE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwNDAyNzQ0NkI3MzAwMkND
Qjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MDQ4Mjc0NDZCNzMwMDJDQ0I3OCAvKiBSZW1vdGVRdWVyeVNldC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQzk4QzA0QjI3NDQ2QjczMDAyQ0NCNzggLyogUmVtb3RlUXVldWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0Q4MjUyRTIyNUQ0OTE5MTAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDgyNTJE
RTI1RDQ5MTZDMDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwM0YyNzQ0NkI3MzAwMkND
Qjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzA0
MzI3NDQ2QjczMDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQzk4QzA0NTI3NDQ2QjczMDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFz
c0VuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwNEMyNzQ0NkI3MzAwMkNDQjc4
IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMDQx
Mjc0NDZCNzMwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNTk0N0E3MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzA0NDI3NDQ2QjczMDAy
Q0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJB
NjZFMjU2MjAyMUUwMEZGN0I2RiAvKiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzAzRTI3NDQ2QjczMDAyQ0NCNzggLyog
UmVtb3RlVGV4dHVyZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzA0NzI3NDQ2QjczMDAy
Q0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUJCQkU0
QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFJlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1v
dGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdCQ0Y3MERFMjYxNUQwNkUwMEU0RkI3MCAvKiBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLywKQEAgLTE0NzMwLDYgKzE0OTMxLDcgQEAKIAkJ
CQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzBFNjA2MTEyRDZCQTkxMDAx
MkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMEU2MTgyMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzAz
RDI3NDQ2QjczMDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0SGVhcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTA1MjM3NTFDNzNEMzhGMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzM0U4MzVCMjNBMUI3NTAw
MERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkVEQkRDRDYxRTY4RDIwMDAwQTU5RjhGIC8qIFdlYkluc3BlY3RvckludGVycnVwdERp
c3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQWRhcHRlclByb3h5LmNwcAppbmRleCBmNjM0ODQ2Yjk1NTczZDUzNDZkODZiOGRiNmRi
OWQzNDQzNWQxMTczLi5kYTRiZDExMGJjMzdmYTBhYjIyNTlmNzc4MWYwYWMzOWY3ZmQ0MTcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVBZGFwdGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAg
UmVtb3RlQWRhcHRlclByb3h5Ojp+UmVtb3RlQWRhcHRlclByb3h5KCkKIHsKIH0KIAotdm9pZCBS
ZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmlj
ZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJH
UFU6OkRldmljZT4pPiYmIGNhbGxiYWNrKQordm9pZCBSZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVl
c3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4mJik+JiYgY2FsbGJh
Y2spCiB7CiAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOwogICAgIFVOVVNFRF9QQVJBTShj
YWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCmluZGV4IDZlODU0M2Ix
MDViOWI1NDliZjY4ZjY4OTAxODYwZTg3YTliYTFmMTUuLjgzM2JiM2VlMzU5ZDFiYjg4NGJmNzk5
ZTk1OWFmZWE1OTQ3Nzg2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCkBA
IC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJHUFVJZGVudGlmaWVyIGJhY2tpbmco
KSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIHZvaWQgcmVxdWVzdERldmljZShj
b25zdCBQQUw6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChS
ZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3REZXZp
Y2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYpPiYmKSBmaW5hbDsKIAogICAgIERlcXVlPFdU
Rjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPj4gbV9jYWxsYmFja3M7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwCmluZGV4IDNmZDg1NzM0NzU0
Y2RjMGUxYzFkMWYxNmMwYTdlYjU2NDYxMGYwMjcuLmEyNzlkNDZjMWQ4NmM4N2I2Y2YxZTE5Yjgz
MGMyNTg5MGIxYjJlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcApA
QCAtNDIsNyArNDIsNyBAQCBSZW1vdGVUZXh0dXJlUHJveHk6On5SZW1vdGVUZXh0dXJlUHJveHko
KQogewogfQogCi1SZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBSZW1vdGVUZXh0dXJlUHJv
eHk6OmNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZp
ZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxQQUw6OldlYkdQVTo6VGV4dHVy
ZVZpZXc+IFJlbW90ZVRleHR1cmVQcm94eTo6Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yKQogewogICAg
IFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKICAgICByZXR1cm4gUmVtb3RlVGV4dHVyZVZpZXdQ
cm94eTo6Y3JlYXRlKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlUHJveHkuaAppbmRleCA0MzM0YTc3N2EzODNjNzhhY2FhZDA4Mzk2ZDJkZDIyMmRj
MTFkNjk4Li4xODY1ZWYyZGEwMmFjMTA5YzljMjUyYmZiOWJhN2JmODY0MjcyNDQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgog
CiAgICAgV2ViR1BVSWRlbnRpZmllciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5n
OyB9CiAKLSAgICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNvbnN0
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25z
dCBmaW5hbDsKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNv
bnN0IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBm
aW5hbDsKIAogICAgIHZvaWQgZGVzdHJveSgpIGZpbmFsOwogCg==
</data>
<flag name="review"
          id="469522"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="469529"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444586</attachid>
            <date>2021-11-17 15:06:00 -0800</date>
            <delta_ts>2021-11-17 15:25:27 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233247-20211117150558.patch</filename>
            <type>text/plain</type>
            <size>458732</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlOTU1YzRk
MzViZmFiZjA1YzU1NmIxZmM1NGJjZTBjMmY0NmYzOWZlLi4yMjA4ZTBjYmQ1NWE0MWI4MTE1ZmMx
NmE3MTBiMDlkNTUwMzY4NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAor
MjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
dG8gdGhlIGVudW0gY2xhc3Nlcywgc28gdGhleSBjYW4gYmUgc2VyaWFsaXplZC4KKworICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHA6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6QWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2UpOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oOgorICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaDoKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg6CisgICAgICAgICogcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVMb2FkT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU1hcE1vZGUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
U3RhdGlzdGljTmFtZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93
ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNv
ZGVyLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RvcmFnZVRleHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0b3JlT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3Qu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24u
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lv
bi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oOgor
CiAyMDIxLTExLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQXBwbGUgUGF5XSBoYW5kbGUgdW5rbm93biBzZXR1cCBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
ZjkzNmE3MzIxN2Y4NmI1NDU3NTU5Y2VkOTRiN2MzMDc4MTMzNDU2Li41YWNlMjVlOTg5MDA0MmEx
Yzg1NWY5M2M2NWQyYTQzOGU0YzQxMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MCBAQAorMjAy
MS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIGNsYXNzZXMgaW4gR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUgdG8gcmVjZWl2ZSBXZWJHUFUncyBJUEMgbWVzc2FnZXMu
CisgICAgICAgIEVhY2ggb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGFuIGFzc29jaWF0ZWQgbWVz
c2FnZXMuaW4gZmlsZS4gRWFjaCBvZiB0aGVzZSBvYmplY3RzCisgICAgICAgIGhvbGRzIGEgYmFj
a2luZyBQQUw6OldlYkdQVSBvYmplY3Qgd2hpY2ggaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlv
bi4gVGhlIG1ldGhvZHMKKyAgICAgICAgdGhhdCByZWNlaXZlIHRoZSBJUEMgbWVzc2FnZXMgYXJl
IGN1cnJlbnRseSB1bmltcGxlbWVudGVkLCBidXQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoCisgICAg
ICAgIHRoZXknbGwganVzdCBmb3J3YXJkIG9uIHRoZSBjYWxscyB0byB0aGVpciBiYWNraW5nIFBB
TDo6V2ViR1BVIG9iamVjdC4KKworICAgICAgICBUaGlzIGFsc28gYWRkcyBzZXJpYWxpemF0aW9u
IHJvdXRpbmVzIGZvciBhbGwgdGhlIHN0cnVjdHMgaW4gU2hhcmVkL1dlYkdQVS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgKHlldCku
IFdlJ3JlIHZlcnkgY2xvc2UsIHRob3VnaCEhISEKKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5
LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUFkYXB0ZXI6On5SZW1vdGVBZGFwdGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCaW5kR3JvdXA6OlJl
bW90ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6flJlbW90
ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6c2V0TGFiZWwp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QmluZEdyb3VwLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmguCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cExheW91dDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0Ojp+UmVtb3RlQmluZEdyb3Vw
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0OjpzZXRMYWJl
bCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZlcjo6UmVtb3RlQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQnVmZmVyOjptYXBBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUJ1ZmZlcjo6dW5tYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVBy
b3h5LmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVDb21tYW5kQnVmZmVyOjpSZW1vdGVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
Q29tbWFuZEVuY29kZXI6OlJlbW90ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJl
VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmZpbGxC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cHVzaERlYnVn
R3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdH
cm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1
Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRp
bWVzdGFtcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmluaXNo
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OnNldExhYmVsKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21t
YW5kRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjp+UmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmRpc3BhdGNoSW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRl
UGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1
Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjppbnNl
cnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGlu
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNv
bXB1dGVQaXBlbGluZTo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZS5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURldmljZTo6UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNl
Ojp+UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
ZXZpY2U6OmltcG9ydEV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURl
dmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2
aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1
dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRl
UmVuZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3Jl
YXRlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OnB1c2hFcnJvclNj
b3BlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0
dXJlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVFeHRlcm5hbFRleHR1
cmU6OlJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4dGVy
bmFsVGV4dHVyZTo6flJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUV4dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVHUFUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVTo6
UmVtb3RlR1BVKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjp+UmVtb3RlR1BVKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91
dDo6UmVtb3RlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGlu
ZUxheW91dDo6flJlbW90ZVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5
U2V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6UmVt
b3RlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6flJlbW90ZVF1
ZXJ5U2V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVR
dWV1ZTo6UmVtb3RlUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6flJlbW90
ZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OnN1Ym1pdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UXVldWU6OndyaXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpjb3B5
RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpz
ZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVldWUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlOjpSZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6On5SZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpz
ZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6
OnNldEluZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXI6OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6On5SZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxSZWZlcmVuY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5PY2NsdXNp
b25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjplbmRP
Y2NsdXNpb25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjpSZW1vdGVSZW5kZXJQaXBl
bGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0
QmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGlwZWxpbmU6
OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQaXBlbGluZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2Rl
LmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTaGFk
ZXJNb2R1bGU6OlJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNo
YWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2hhZGVyTW9kdWxlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
dXJlOjp+UmVtb3RlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6OmNy
ZWF0ZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVWaWV3LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6UmVtb3RlVGV4dHVyZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6flJlbW90ZVRleHR1cmVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZVZp
ZXc6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpPYmplY3RIZWFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21C
YWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Qmlu
ZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21w
dXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9tQmFja2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5
b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNv
bnZlcnRRdWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmpl
Y3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZy
b21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0
UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVG
cm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVy
dFRleHR1cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaDogQWRkZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkJsZW5kU3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Qmxl
bmRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJp
bmRpbmcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkNvbG9yRGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b2xvckRpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRh
cmdldFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1h
bmRFbmNvZGVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkRlcHRoU3RlbmNpbFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkRlcHRoU3RlbmNpbFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRldmlj
ZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGV2
aWNlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUVy
cm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVudDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0REaWN0OjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNERGljdDo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkZyYWdtZW50U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6RnJhZ21lbnRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXI6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VD
b3B5VGV4dHVyZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weVRleHR1cmVUYWdnZWQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Oklt
YWdlQ29weVRleHR1cmVUYWdnZWQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZURh
dGFMYXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VE
YXRhTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjJERGljdDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9yaWdpbjNERGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpPcmlnaW4zRERpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok91dE9mTWVtb3J5RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T3V0T2ZNZW1vcnlFcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpQaXBlbGluZURlc2NyaXB0b3JCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpRdWVyeVNldERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rl
ckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVu
ZGVyUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0xheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQ
YXNzTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9uczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRv
cjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3Rh
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
RmVhdHVyZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9y
dGVkRmVhdHVyZXM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
TGltaXRzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRl
ZExpbWl0czo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVC
aW5kaW5nTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlw
dG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNj
cmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNj
cmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVW
aWV3RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZh
bGlkYXRpb25FcnJvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlZlcnRleFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZUFkYXB0ZXJQcm94eTo6cmVxdWVzdERldmljZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQ
cm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZVRleHR1cmVQ
cm94eTo6Y3JlYXRlVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlVGV4dHVy
ZVByb3h5OjpjcmVhdGVWaWV3IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5Lmg6CisKIDIwMjEtMTEtMTcg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9tZW50
dW0gYW5pbWF0b3Igc29tZXRpbWVzIHN0YXJ0cyB0aGUgYW5pbWF0aW9uIGF0IGEgdmVyeSBoaWdo
IHZlbG9jaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCmluZGV4IGM0ODA1ZGQ5
ODYxMTk3ZWU5NWU1MzZmM2I1MGY1N2RhNjQ2OWFhMTQuLjIzZjVjOWFjZjA5MWRkODdkMzM1MDkw
MWY0NWVhMDU2ZjJmY2ExYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBA
IC0xNDUsNyArMTQ1LDcgQEAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3RE
ZXZpY2VTdGF0dXMgc3RhdHVzLCBXR1BVRGV2aWNlIGRldmljZSwgY28KICAgICBhZGFwdGVyLT5y
ZXF1ZXN0RGV2aWNlQ2FsbGJhY2soc3RhdHVzLCBkZXZpY2UsIG1lc3NhZ2UpOwogfQogCi12b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+JiYgY2FsbGJhY2spCit2b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwuaAppbmRleCAzNDkyNGFjNjg5Yjc5OWY2OWY0OGYxNmY0ZjAxNWVkOWM1NzAxNDA4Li5lODRl
ZDRhODViNmJjM2U0MjEzZDgzN2Q5MThhN2MxNmRmOTgyYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVB
ZGFwdGVySW1wbC5oCkBAIC01OCw5ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0
RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNj
cmlwdG9yJiwgV1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OmZ1bmN0aW9u
PHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpmdW5jdGlv
bjx2b2lkKFJlZjxEZXZpY2U+KT4+IG1fY2FsbGJhY2tzOworICAgIERlcXVlPFdURjo6ZnVuY3Rp
b248dm9pZChSZWY8RGV2aWNlPiYmKT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV0dQVUFkYXB0ZXIg
bV9iYWNraW5nIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4dD4g
bV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29u
dmVydFRvQmFja2luZ0NvbnRleHQuaAppbmRleCAzMWY0NTRiYmRkNDlhNzliYzM3ZmNiODcxMzk0
NjU5Y2ZlZDBkOTJjLi4zYzliNWM3YjRkNTgzZDJhNjcyOGJiZDcyNzNiNWJiMjYwYzYyZDM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKICNpbmNsdWRl
ICJXZWJHUFVUZXh0dXJlVXNhZ2UuaCIKICNpbmNsdWRlIDxXZWJHUFUvV2ViR1BVLmg+CisjaW5j
bHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oCmluZGV4IDJiMThmOWI2
OGQyM2ZiYmIwZTM4MjkzYTFjOTVlMGNmNTk3YTk2NmQuLjMzODNlYTEzNjk0Y2M5ZjA3OTQ1MzBl
MDhiMGIyYzI0YTU2Y2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVVGV4dHVyZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIFdHUFVUZXh0dXJlIGJhY2tpbmcoKSBjb25zdCB7
IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsK
KyAgICBSZWY8VGV4dHVyZVZpZXc+IGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JikgZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oCmluZGV4IGUyZDljNjFkMGVmY2Y1YTZmYzMzN2JkNmFjZDkxOWNlOTEyYmUw
NzEuLjUwN2M0YWFjNDc2ZDgxYmUzNTI5YTM4Yjg5MTY1NjE1ZTA4NjRkZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVy
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRz
KCkgY29uc3QgeyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8RGV2aWNlPik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmlj
ZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+
JiYpPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBZGFwdGVyKFN0cmluZyYmIG5hbWUsIFN1
cHBvcnRlZEZlYXR1cmVzJiBmZWF0dXJlcywgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMsIGJvb2wg
aXNGYWxsYmFja0FkYXB0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaAppbmRleCA2N2JhZDViOWRmODk1
NGE0MDRmOTcwZGZmOWU1MzBhZWFhNTc3Y2QxLi40Y2FkZmE2NWRkNzAwY2MwYTFhNTlmYzRkMGJj
MjkzMjU3ODI4ZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkZHJlc3NNb2RlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVt
IGNsYXNzIEFkZHJlc3NNb2RlIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGUsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpBZGRy
ZXNzTW9kZTo6UmVwZWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJv
clJlcGVhdAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rv
ci5oCmluZGV4IGZlZDVlODFlNjgzYTg1ODg1ODk5OTc0YjRhNmQ0OGI3NDFhODQ0ZDguLjIwMjJi
ODA3MmJiNzRkNzBiZjQ5Y2ViMWU5YWY2OGE2Njk5ZTEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3Iu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTQ2LDMgKzQ3LDI2IEBAIGVudW0gY2xhc3MgQmxlbmRGYWN0b3IgOiB1aW50OF90IHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3RvciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvLAorICAgICAgICBQ
QUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6Ok9uZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5k
RmFjdG9yOjpTcmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNT
cmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGEsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNTcmNBbHBoYSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3Rvcjo6T25lTWludXNEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6RHN0
QWxwaGEsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNEc3RBbHBo
YSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpTcmNBbHBoYVNhdHVyYXRlZCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpDb25zdGFudCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50CisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kT3BlcmF0aW9uLmgKaW5kZXggMWY2MDBjOGRh
YmNhYTc1NzAzMGQ1NzIxOTM4ZjQwZDY0MTFhZjIyMC4uODZhMGI5ZGQ5YzM2OGEzOTU0YmYyNzRm
MWUxZDE5OTU2MTNlYTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzks
MTggQEAgZW51bSBjbGFzcyBCbGVuZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9u
LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OkFkZCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpTdWJ0cmFjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkJsZW5kT3BlcmF0aW9uOjpSZXZlcnNlU3VidHJhY3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpC
bGVuZE9wZXJhdGlvbjo6TWluLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246
Ok1heAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nVHlwZS5oCmluZGV4IDBhMGFkNjZiMDFkNDM2MGE5NzhhNzBhZTA4NTZjYTk1ZjkxN2Uz
ZDcuLjQ0MWI3MjhkNmE0MjAyOTY5ZTE3MDJhY2QzMjNhZDVkNzU3Zjg0YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyQmluZGluZ1R5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQnVmZmVy
QmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BV
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6
V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlOjpVbmlmb3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6QnVmZmVyQmluZGluZ1R5cGU6OlN0b3JhZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZm
ZXJCaW5kaW5nVHlwZTo6UmVhZE9ubHlTdG9yYWdlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQnVmZmVyVXNhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmgKaW5kZXggNTQwMTFmNDMzNzE1ZTRkYjE5ZTJiMGFh
YjVlMjgxYzg3NzEwYjM1Mi4uZDU1ZWNmYzQ2NWRjNTg4NjMzZDdjMmNlNDQ1NDE3OGU2MzhhNmEz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyVXNhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCiB1c2luZyBCdWZmZXJVc2FnZUZsYWdzID0gdWludDMyX3Q7Ci0KIGNsYXNz
IEJ1ZmZlclVzYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8QnVmZmVyVXNhZ2U+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgTUFQX1JFQUQgICAgICA9IDB4MDAw
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCmluZGV4
IDA5MWNhZGFiNDEyNDk3YzljOGQ0N2YzMDU4YjQ1OGM0NjdhYWNiMDMuLjQ0ODQyZmMzOWY5ZGRm
MzA5ZTgyOWMxMTI5YmY0YTBiMGRkNGViYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3Np
dGluZ0FscGhhTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxw
aGFNb2RlOjpPcGFxdWUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0Fs
cGhhTW9kZTo6UHJlbXVsdGlwbGllZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXBhcmVGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKaW5kZXggNmNiZWEzZDU4NDY5NGIwNDQzZGU3YmQ0
NWI2ODQ1YTcwYjQ5OTM1OC4uYjhlNzQxYjdkYjAzNjU3NjI2YTI5ZDI3N2U5YjA0NWUxNGZiNzY5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGFyZUZ1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5o
PgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC00MSwzICs0MiwyMSBAQCBlbnVtIGNs
YXNzIENvbXBhcmVGdW5jdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246Ok5ldmVyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6Q29tcGFyZUZ1bmN0aW9uOjpMZXNzLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1
bmN0aW9uOjpFcXVhbCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyLAor
ICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlckVxdWFsLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpBbHdheXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgKaW5kZXgg
YTQ2MzUyNDQxZWE3N2RkYTIyZGJjZjJjODIxMWU0YzkwZTkzYTQyOS4uM2EyZjA1MGIyNzQyMmIz
NzI2YzQzZDNkZTkzM2JmNTFkY2Q0ZWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6
OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQ29tcGlsYXRpb25NZXNz
YWdlVHlwZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yLAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkluZm8KKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cExvY2F0aW9uLmgKaW5kZXggZjA4MTllMDE0Y2Q5ZGRhYmFiZjBlM2JmYjZkM2ZkZGE3MDYwOGJi
Yy4uZWM3MTdiN2NiNWM0OTU2ZWQ2ODMzMDBhNDE4ODM5MjdjMWFhNmU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkJlZ2lubmluZywKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkVuZAorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oCmluZGV4IDhlNTI3N2JmZjliZjBl
NTYxMjhkYWNkZGY5NjgxZDY3OWQ3ZTQ5MzIuLjRjODdkMDc3MzkxYWNkNjE1ZDA2MWVmNTkwMWEx
MDVmNzBkODBkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUN1bGxNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAK
IG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3Mg
Q3VsbE1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisK
K25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2Vi
R1BVOjpDdWxsTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpDdWxsTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkN1bGxNb2RlOjpO
b25lLAorICAgICAgICBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkZyb250LAorICAgICAgICBQQUw6
OldlYkdQVTo6Q3VsbE1vZGU6OkJhY2sKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVEZXZpY2VMb3N0UmVhc29uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmgKaW5kZXggYWNkYmZmNmQ4OTQ5YTBlYzI5NmRj
NWVjZjM3NTMyZTJlZmEwM2NmZC4uYjQxZWM0MDQyNTJlNWMyOWZhNzE5N2U5ODlkYzg4MmQzNGM2
YWEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVu
dW0gY2xhc3MgRGV2aWNlTG9zdFJlYXNvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8UEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb24+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbiwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZAorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oCmluZGV4IDgyNmJk
YWI1YmMxZDlmODU1YTlmOTEyZDAyYzllYzQ1NGVhOWRkNDAuLmVlZGQ4NzE0ZDQ4ZDE3M2M5MDU3
NTM5YzI5OGExZmRmMDA2ODA2OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgRXJyb3JGaWx0ZXIgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcj4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkVycm9yRmlsdGVyOjpWYWxpZGF0aW9uCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRmVhdHVyZU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZlYXR1cmVOYW1lLmgKaW5kZXggMGQ1ODcwYmM4MDkxMGJjNTkzYWZhZmRjNDAz
ZDRlOTk4ZWI0OTFkMi4uNmEzMzU4OWQ4OTQ5ZmE4NDc2YzE0ZGI3ZmQzNTg0OWFmZjczZjM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmVhdHVyZU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVGZWF0dXJlTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNDIsMyArNDMsMjIgQEAgZW51bSBjbGFzcyBGZWF0dXJl
TmFtZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6
OkZlYXR1cmVOYW1lPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5h
bWU6OkRlcHRoQ2xpcENvbnRyb2wsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgzMmZsb2F0U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uQmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uRXRjMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVO
YW1lOjpUZXh0dXJlQ29tcHJlc3Npb25Bc3RjLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVy
ZU5hbWU6OlRpbWVzdGFtcFF1ZXJ5LAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6
OkluZGlyZWN0Rmlyc3RJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUZpbHRlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZpbHRlck1vZGUuaAppbmRleCA4YmM4ODEyMjA1Y2U4MmI1Yzg0Y2E3ZTRiNTUxMzJhNmFk
MTY0OGU3Li4xYWZiM2ZhNWU1MTJmZWVlMDA5NmMxZTFhOWNhMjAxY2M5ZGEzY2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJN
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmlsdGVyTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBGaWx0ZXJNb2RlIDogdWlu
dDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RmlsdGVyTW9k
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BV
OjpGaWx0ZXJNb2RlLAorICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVyTW9kZTo6TmVhcmVzdCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkZpbHRlck1vZGU6OkxpbmVhcgorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKaW5kZXggN2MzYTA5NTZiM2Q1NTZlMWMz
YzJlZjZiZDE5ZjEzYTlkOGU1OTBhNy4uZmY2NWIxMDA3ZWQzOTJhNjFjZDViMDM0YzA2MmMyYmU2
MTI1MzdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRnJvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNSwzICszNiwxNSBAQCBlbnVtIGNsYXNzIEZy
b250RmFjZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkZyb250RmFjZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpGcm9udEZhY2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGcm9udEZhY2U6
OkNDVywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZyb250RmFjZTo6Q1cKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
LmgKaW5kZXggNjdhZmU4MTFlYjhkODhiYmMyYThiYjllZTQ1OGNiZDBkMTYwZWZjNC4uOTU1ZjA5
N2RjZjAwZDQwMWQwMDk2MDc4MGZhM2IyNjY4Y2U1ZjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6
dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBz
b3VyY2U7CisgICAgLy8gRklYTUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9u
YWw8T3JpZ2luMkQ+IG9yaWdpbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbmRleEZvcm1hdC5oCmluZGV4IGU2ZDRi
Y2IzMjNjYWI1Yzc1YjczMGIwMjhjMzU4M2M3ZmI2MGViYTYuLmFkOTU2ZTcyZGQ4Nzc3NDIxNWQ1
Yjk4NjU3NGUxNmVlODZhMTAwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgSW5kZXhGb3JtYXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0OjpVaW50MTYsCisgICAgICAgIFBBTDo6V2ViR1BVOjpJ
bmRleEZvcm1hdDo6VWludDMyCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTG9h
ZE9wLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2Fk
T3AuaAppbmRleCBkODFmODlmMDllOWI2NmE3M2IxNjIxMTY5ZjQ2YWEyNDdlZWVlOTRjLi5kYzgy
NjBkNzMzMGQ2OGQ4NDg1ZWE3NjlmMmQwZWMwZWE1OTAxNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMg
KzM1LDE0IEBAIGVudW0gY2xhc3MgTG9hZE9wIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6TG9hZE9wPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkxvYWRPcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkxvYWRPcDo6TG9hZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaAppbmRleCA2Y2QxOWQ1Mzc2ZWY3MWJkMzUxMDU1YjkyMTMzYmQzMWI2YjJlOWE4Li5mMTdm
Yzc3NjM1YmZmZWY3MjA2MTNjZTVjMDNjZGIwMzA1OTE4YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oCkBAIC0z
Miw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiB1c2luZyBNYXBNb2RlRmxh
Z3MgPSB1aW50MzJfdDsKLQogY2xhc3MgTWFwTW9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1hcE1v
ZGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgUkVBRCAg
PSAweDAwMDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCmluZGV4IDJl
OGFlZWE5Mjk3YTczZWEyYThmY2VlNDFhNTc3MDgxOTAwNmQ5OTQuLmJmOTNmNjc5MDA0YWRjNjAz
MDc1OWU1ZWMzOTM3OGFkZDVkOTRjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlz
dGljTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQaXBlbGluZVN0YXRpc3RpY05h
bWUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQ
aXBlbGluZVN0YXRpc3RpY05hbWU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lLAorICAgICAgICBQQUw6
OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9ucywK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6Q2xpcHBlckludm9j
YXRpb25zLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlw
cGVyUHJpbWl0aXZlc091dCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGlj
TmFtZTo6RnJhZ21lbnRTaGFkZXJJbnZvY2F0aW9ucywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lU3RhdGlzdGljTmFtZTo6Q29tcHV0ZVNoYWRlckludm9jYXRpb25zCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93ZXJQcmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAppbmRleCAx
NjUzNWM2MWZiMTRiMmMwMmY2MDMyZGNkOWNjMjgwYzk0YTYxMjQwLi4zMDYwODk3Y2Y5ZWEzMmQ0
NzJkYTg2Mjg2ZWE1Njg5ODI0NzBmZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAg
LTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBv
d2VyUHJlZmVyZW5jZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6TG93
UG93ZXIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3Jt
YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNw
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oCmluZGV4IDk0MzAwODA0MDAyYTZjMDJkMThlZTcxYzVhODMzMWM3
MDBhZGZkNTcuLmZhN2QxZTFlZjViYzM4MmU1M2I3ZjdjZjI1MzZmMzRkZDI5ODUxZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRl
ZmluZWRDb2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0g
Y2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29s
b3JTcGFjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdC
CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVRv
cG9sb2d5LmgKaW5kZXggZTRkMGYyYWUyMmJjNjQ1YzQwMzJhNjk1MWZhNDVkNzUzYTVhZTYwYy4u
YjUwY2Y5MzA0YWIyZTE0MjQwZThhNzQ4ZDRhMDY5NjNkNGQ2ZjZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
cmltaXRpdmVUb3BvbG9neS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQcmltaXRpdmVU
b3BvbG9neSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5LAorICAgICAgICBQQUw6Oldl
YkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlBvaW50TGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lTGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1p
dGl2ZVRvcG9sb2d5OjpMaW5lU3RyaXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVU
b3BvbG9neTo6VHJpYW5nbGVMaXN0LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9w
b2xvZ3k6OlRyaWFuZ2xlU3RyaXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWVyeVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oCmluZGV4IDA1OTFmYjM1NDZhZmU2MzMwOWE3OTY3ZDVmOTA0MDlkODc3MWQ1
NGUuLmNjMzBkNDg4M2ZmMmRlMDZlZDlkOGJjOGM5OTJjNWRiODFjNjNkZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5
VHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBRdWVyeVR5cGUgOiB1aW50OF90IHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlU
eXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlUeXBlOjpPY2NsdXNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU6OlBpcGVsaW5lU3RhdGlzdGljcywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlF1ZXJ5VHlwZTo6VGltZXN0YW1wCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVF1ZXVlLmgKaW5kZXggZTE2ZTkzZGUxNjgyZTRiNTg5ZjIwYTk0ZWVhZDg2MzlmNjFh
ZmRmMC4uNmY4ZjhmODEwYjhkMDFhMTI4YzZiZGVmY2RlMzJjZjVhNDA5MjM4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgogI2luY2x1ZGUgIldlYkdQ
VUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggNWExMGM1ZjIxNjZkMGM1OGI3NDI0
NGZjY2RmODIwNWFjODY1NTZjZC4uMmQ3NWZmY2U4YmI4MTA0NGM5MGZjMDU4MjdlZDA5YzYwYzFi
NWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIldlYkdQVUluZGV4Rm9ybWF0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50
ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIK
KyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmgKaW5kZXggMWU3NmJhNzdiODQwYTEwN2Y2YzExNjEyZTgyNzNiZjMyM2VlNzMyZC4u
NzM1MmVhMWRkOGI5NTNiMjVmNTgyNDY2ZWFhNzc5NmVlNWRmMjJmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29s
b3IuaCIKICNpbmNsdWRlICJXZWJHUFVJbmRleEZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdQVUlu
dGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCBhYjVmYTAxOTg5NmFk
MDQ4ZDc1MjJkMDA5YTM3YjhjMTRkMzNlZWQxLi4yMDM4NzY4ZjQzNTc2YjE3NjE4YjQyMzdiNzJk
OWE5MzcwMjFmMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
TG9jYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUmVuZGVyUGFzc1RpbWVzdGFt
cExvY2F0aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2Nh
dGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6
QmVnaW5uaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0
aW9uOjpFbmQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oCmluZGV4IDE4Y2FkYzBlMDcwNjA3YTQ0MTUyMjIxN2QxMjFmYjVi
NDEwMmZmMDAuLmE0OTJjZTY2ZGY1YTEzNGQwZTA4ZmEzNTQxODQ2ODJjMjczYzNmMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBTYW1wbGVyQmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlLAor
ICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlOjpGaWx0ZXJpbmcsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU6Ok5vbkZpbHRlcmluZywKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbgorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaAppbmRl
eCA5MDY5YmI3ZWYyZDQyZGU2ZDc5YmNiODFkYTNhNzE5NDQzMDJlNDQ5Li5iYTBjNmY1NmJlODk1
ODk0ZWJhOWJlYjI0N2ZlOWU3MzA3OTEzMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsK
IApAQCAtNDEsMyArNDIsMjEgQEAgZW51bSBjbGFzcyBTdGVuY2lsT3BlcmF0aW9uIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbjo6S2VlcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm8s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW52ZXJ0LAorICAgICAgICBQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50Q2xhbXAsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRDbGFtcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb246OkluY3JlbWVudFdyYXAsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRXcmFwCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgKaW5kZXggNzJi
NzY4MTVjZGVjYTA3NGY1Yjg0ZWE4MjUwMDllMmM5ZDc1ZTgxNi4uZTQ3ZTdiOWY0YTkxMDdmNGY4
ZjEyMTYzZjJlNzFhZjk2MjQxNjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBTdG9yYWdlVGV4dHVyZUFjY2VzcyA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzLAorICAgICAgICBQQUw6OldlYkdQ
VTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M6OldyaXRlT25seQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaAppbmRleCA5NzBjYmZiZGQyZWYzNDViODkwOWJmYzVmYzY3
NTYwMzc1ODkzZDIxLi45OTQ0ZDhiYzIwMjkxY2RlODg1ZjI0YWI1YjJkOTgzNWY3ZDc0NGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
dG9yZU9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmVPcC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBTdG9yZU9wIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RvcmVPcD4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9y
ZU9wLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcDo6U3RvcmUsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTdG9yZU9wOjpEaXNjYXJkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oCmluZGV4IDA1YzkyZWUwOGNiYmU3NDhjMGY2MWNlNTU3NTU0NGYzYjk4NDM2
YjcuLmQ1MmVkMTJhODIxMjNkMDE3NDdhNmY1NTc0Nzg4NTcyMDZhYTc1NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBzZXRMYWJlbEludGVybmFsKG1f
bGFiZWwpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUmVmPFRleHR1cmVWaWV3PiBjcmVhdGVWaWV3
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlv
bmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oCmluZGV4IDc5YmVhMGNkOGMxN2U5
YzE4NjA0ZjQxMTVjZWMxZDhjYWQ4YTViYmEuLjU2MThjZmViNzUxODlkZDNiNmNkNmNkMzg0ODkz
YThhZDY1YWNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRy
YWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBl
bnVtIGNsYXNzIFRleHR1cmVBc3BlY3QgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0PiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0OjpBbGwsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlQXNwZWN0OjpTdGVuY2lsT25seSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVB
c3BlY3Q6OkRlcHRoT25seQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVEaW1lbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmVEaW1lbnNpb24uaAppbmRleCA0NzU0MTA3ZWU1YjM4MTljYzljODJmODQ3ZGU2
YmM0Y2RlMGQxOWRmLi41M2EyZTc5ZWNlN2IwNTJlOWE1ZGY0NjIxZDU0MDIzYjI5ZjM0NTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGltZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBUZXh0dXJlRGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZURpbWVuc2lvbjo6XzJkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZURp
bWVuc2lvbjo6XzNkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZv
cm1hdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZUZvcm1hdC5oCmluZGV4IDNjOGFhNmM0ODUzYTg1NDAyODZlMzgwYjE5ZmNmMTYxN2ZhMzJk
NWYuLjYyNTk0NjAwNWYwZTg2M2FmOTAzMjgxNjViMzg4OTEyZGQ3NTAyNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3Jt
YXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRm9ybWF0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCkBAIC0xNTMsMyArMTU0LDEwOCBAQCBlbnVtIGNsYXNzIFRleHR1cmVGb3Jt
YXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Ujhz
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4dWludCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c2ludCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OlIxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2
ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzh1bm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnOHNub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OlJnOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpSMzJ1aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMyc2ludCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpSZzE2c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnMTZmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YmE4dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVub3Jt
U1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm0sCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpSZ2I5ZTV1ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpS
Z2IxMGEydW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzExYjEw
dWZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMnVpbnQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzMyc2ludCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMzJmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OlJnYmExNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSZ2JhMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
UmdiYTE2ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1
aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTMyc2ludCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpEZXB0aDE2dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0OjpEZXB0aDI0cGx1cywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkRlcHRoMjRwbHVzU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpEZXB0aDMyZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpC
YzFSZ2JhVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2Jh
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVu
b3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3JtU1JH
QiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0IsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSVW5vcm0sCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSU25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpCYzVSZ1Vub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6QmM1UmdTbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJj
NmhSZ2JVZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzZoUmdi
RmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm0s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjh1bm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtU1JHQiwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2JhOHVub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYmE4dW5vcm1TUkdCLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RWFjUjExdW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpFYWNSMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkVhY1JnMTF1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkVhY1JnMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFz
dGM0eDRVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM0eDRV
bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5v
cm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5vcm1TUkdC
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtU1JHQiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QXN0Yzh4NVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkFzdGM4eDZVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkFzdGM4eDZVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpB
c3RjOHg4VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg4
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVV
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1T
UkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybSwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg2VW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDhVbm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDEwVW5vcm0sCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4MTBVbm9ybVNSR0IsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTJ4MTBVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEyVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDMyZmxvYXRTdGVuY2lsOAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDM4
ZGQzNGRkOTMyZDI0YWYxZGJlOWM0MmRmMmU5ZDcwYmQ1ZDhiZDcuLjM0YTAxY2FiMjBhNTI1NGUw
MGIzMzgyODhiY2EyNjA5NzQwM2ViZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTM4LDMgKzM5LDE4IEBAIGVudW0gY2xhc3MgVGV4dHVyZVNhbXBsZVR5cGUgOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlU2FtcGxlVHlwZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1w
bGVUeXBlOjpGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpV
bmZpbHRlcmFibGVGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBl
OjpEZXB0aCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OlVpbnQKKyAgICA+OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24u
aAppbmRleCBiMzVjMDQwMjNmMWRjNjhiMWFhZWVkODRlYjRiZTVjNWVmNTUzM2I5Li5kMzZlZTQ1
YzhhODY1MGU0YTZhMTNiZTcyNDllZTMzOGIzZDAzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGltZW5zaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewogCkBAIC0zOSwzICs0MCwxOSBAQCBlbnVtIGNsYXNzIFRleHR1cmVWaWV3
RGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3RGltZW5zaW9uOjpfMmRBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uOjpDdWJlLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdE
aW1lbnNpb246OkN1YmVBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGlt
ZW5zaW9uOjpfM2QKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3Jt
YXQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCmluZGV4IDk0ZWFjNDEzOGExNmU5ZWU2ZGRlMDA4NmExOGM3NjZiY2NjNDk3OWMu
LjJhMDEzNTM0Y2NkMzExYWU4MTcwY2ViMjZiZGNkYTMyMGI1NjU5NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtNjMsMyArNjQsNDMgQEAgZW51bSBjbGFzcyBWZXJ0ZXhGb3JtYXQgOiB1aW50
OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50
OHgyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHg0LAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50OHgyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0OjpTaW50OHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9y
bWF0OjpVbm9ybTh4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm04
eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHgyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTh4NCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdDo6VWludDE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OlVpbnQxNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50
MTZ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDE2eDQsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4MiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm0xNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVy
dGV4Rm9ybWF0OjpTbm9ybTE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNub3JtMTZ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNngy
LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDE2eDQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzIsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZv
cm1hdDo6RmxvYXQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9h
dDMyeDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyeDIsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4
Rm9ybWF0OjpVaW50MzJ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2lu
dDMyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzJ4MiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDMsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQzMng0CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmgKaW5kZXggNjRkMTJjOTgwODdlOGI1NDY4Yzdk
OTkzNDIwNDg3MTQ2MzQ5MzMxOS4uNDFiMzA2OWNmMGJmMzQ5YzY3MWMxMWNkZjhiZDFlYmFmM2Yz
OWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBj
bGFzcyBWZXJ0ZXhTdGVwTW9kZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU6OlZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlZlcnRleFN0ZXBNb2RlOjpJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTFVuaXRUZXN0cy9XR1NMVW5pdFRlc3Rz
Lm1tIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KaW5kZXgg
NzNkN2M3ZGM3OWJlNGZjYzBmZDA3ZTg1ODNhZjcwZDA4YmYwYzgxOC4uZjM3NGJhZDYzMzk0Yzcz
Zjg5OWVhZjVkNmRiZmIwY2E2YjdkZmM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XR1NM
VW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KKysrIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRl
c3RzL1dHU0xVbml0VGVzdHMubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8WENUZXN0
L1hDVGVzdC5oPgogI2ltcG9ydCA8dmVjdG9yPgorI2ltcG9ydCA8d3RmL0RhdGFMb2cuaD4KICNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogQGludGVyZmFjZSBXR1NMVW5pdFRlc3RzIDogWENUZXN0
Q2FzZQpAQCAtMzQsNiArMzUsNyBAQAogQGltcGxlbWVudGF0aW9uIFdHU0xVbml0VGVzdHMKIAog
LSAodm9pZCl0ZXN0RXhhbXBsZSB7CisgICAgZGF0YUxvZygiYXNkZlxuIik7CiAgICAgVmVjdG9y
PGludD4geCB7IDIsIDMsIH07CiAgICAgVmVjdG9yPGludD4geTsKICAgICB5LmFwcGVuZCgyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDdkNjM0NTM0ZWNlZDk5NzBmOWZlYjZhNmJmYjk0ZDAzODQz
YzAzZjQuLjUxYzQwOGU5MzAyNzcyNDFmMzA0ZTAxOGFmYjk4OGI0NjhiMjExNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtMTM2LDYgKzEzNiwyOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTAogICAg
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogCisgICAgR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJpbmRHcm91cExheW91dAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUJ1ZmZlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRC
dWZmZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rl
cgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZQor
ICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZQorICAgIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZQorICAgIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVBpcGVsaW5lTGF5b3V0CisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVlcnlTZXQKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZQor
ICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZQorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIKKyAgICBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2RlcgorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lCisgICAgR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlVmlldworCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcgogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkKICAg
ICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDNkZjk4YTM1MGQ4ZDQ3NGM1
MjdkOWMyNDkxMTFjNGJlNTBlYmFkNDAuLjc5OWFkNzViMmExYWIyMTBkMDgxZDU5ZmQ1YjRiMDJk
OGI2ZGFlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTI0LDYgKzI0LDI4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHQubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlv
dXQubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNv
bXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMu
aW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVy
bmFsVGV4dHVyZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlR1BVLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXVlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBh
c3NFbmNvZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgorJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxl
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCAxZjI2NjY4NDAwYWY5MjEyZDAwYzcxYWVhMGI1ODVhMDcw
MjNjYjlhLi5hNjVmYzM2MTg0Y2ZmOGY3NzUyZDY4NTI3OTg2MTU0YjZhZjgwMWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2
ICsxNTQsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdlcwogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBZGFwdGVy
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQWRhcHRlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlck1lc3NhZ2VzLmgKQEAgLTE4NSw2ICsxODgsMTUgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJN
ZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJh
Y2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCaW5kR3Jv
dXBMYXlvdXRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdl
c1JlcGxpZXMuaApAQCAtMjA2LDkgKzIxOCwzMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNv
bW1hbmRCdWZmZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kQnVmZmVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRFbmNvZGVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ29tbWFuZEVuY29kZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXJN
ZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZURldmljZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzUmVwbGllcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2Vp
dmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdQVU1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNz
YWdlc1JlcGxpZXMuaApAQCAtMjgyLDEyICszMTUsMzMgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VzUmVw
bGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9i
amVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVQaXBlbGluZUxheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVBpcGVsaW5lTGF5
b3V0TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUXVlcnlTZXRNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVRdWVyeVNldE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVF1ZXJ5U2V0TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1ZXVlTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UXVldWVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVRdWV1ZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVF
bmNvZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2Vz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
bmRlclBhc3NFbmNvZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UmVuZGVyUGlwZWxpbmVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQaXBlbGluZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRNZXNzYWdlc1JlcGxpZXMuaApAQCAtMzAwLDE1ICszNTQsMjcgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWcKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1w
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZXJNZXNzYWdlc1JlcGxpZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVNoYWRlck1vZHVsZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVU
ZXh0dXJlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlVGV4dHVyZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVRleHR1cmVWaWV3TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1ZjVmNDczMDk2M2Ri
Njk1NWVlOWI0MDkzMTNkY2IwNDBmM2M5Njg4Li5kZGU1YzYzZmUzZjRiMzE1Mjk3ZGI0YjY4NDg5
YzI5ZGU1YmJhNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDcsNiArMjQ3
LDI4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlciBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kIFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyIFwKKwlHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAgXAorCUdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVD
b21tYW5kQnVmZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5k
RW5jb2RlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxp
bmUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZSBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIFwKKwlHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVBpcGVsaW5lTGF5b3V0IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVRdWVyeVNldCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUgXAor
CUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZSBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgXAorCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lIFwKKwlHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVTaGFkZXJNb2R1bGUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVRleHR1cmUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3
IFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eSBcCiAJR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBcCiAJR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTA0MDlhOWM0NjE0YTU0NjI0YWZkZmFhYTBlMmYxMzk1ZjQ3NjM1OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBZGFwdGVyLmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgiCisjaW5j
bHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1
cmVzLmgiCisjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZW1vdGVBZGFwdGVyOjpSZW1vdGVBZGFwdGVyKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBhZGFw
dGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYWRh
cHRlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVBZGFw
dGVyOjp+UmVtb3RlQWRhcHRlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQWRhcHRlcjo6cmVxdWVz
dERldmljZShjb25zdCBXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkdQ
VTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYgY2Fs
bGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJB
TShpZGVudGlmaWVyKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEhBVkUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUwZjM3ZTdlNDY3MDk4YTE3NmZlNGM0MDc4MzE0OWEwYzFkMzc3ZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQWRhcHRlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK25hbWVzcGFjZSBXZWJHUFUgeworc3RydWN0IERldmljZURlc2NyaXB0b3I7CitjbGFzcyBP
YmplY3RIZWFwOworc3RydWN0IFN1cHBvcnRlZEZlYXR1cmVzOworc3RydWN0IFN1cHBvcnRlZExp
bWl0czsKK30KKworY2xhc3MgUmVtb3RlQWRhcHRlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVh
bU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVBZGFwdGVy
PiBjcmVhdGUoUEFMOjpXZWJHUFU6OkFkYXB0ZXImIGFkYXB0ZXIsIFdlYkdQVTo6T2JqZWN0SGVh
cCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZUFkYXB0ZXIoYWRhcHRlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJl
bW90ZUFkYXB0ZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsK
KworICAgIFJlbW90ZUFkYXB0ZXIoUEFMOjpXZWJHUFU6OkFkYXB0ZXImLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZUFkYXB0ZXIoY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVs
ZXRlOworICAgIFJlbW90ZUFkYXB0ZXIoUmVtb3RlQWRhcHRlciYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVBZGFwdGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZUFkYXB0ZXImIG9wZXJhdG9yPShSZW1vdGVBZGFwdGVyJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHJlcXVlc3REZXZp
Y2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllciwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2Vi
R1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpBZGFw
dGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTEz
M2FhNmUxY2M2YjUzOWEwNDllNzQ1NjU5M2VmMDM4YTgzNGM4YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQWRhcHRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7
CisgICAgdm9pZCBSZXF1ZXN0RGV2aWNlKFdlYktpdDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9y
IGRldmljZURlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAt
PiAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRlZEZlYXR1cmVzLCBX
ZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0cykgU3luY2hyb25v
dXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcxMGE1
NDU5NWU2YjRiNDIwYWIxMDkyODMzZjcxOGM0OTEyMzBiNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmNw
cApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUJpbmRHcm91cC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCaW5k
R3JvdXA6OlJlbW90ZUJpbmRHcm91cChQQUw6OldlYkdQVTo6QmluZEdyb3VwJiBiaW5kR3JvdXAs
IFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhiaW5kR3Jv
dXApCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQmluZEdy
b3VwOjp+UmVtb3RlQmluZEdyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVCaW5kR3JvdXA6OnNl
dExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVCaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQmluZEdyb3VwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNkMTBkZjQxNTI4YWQxMjJhYWEwM2JlNzZh
NzgwM2FiZDhhYjgxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmgKQEAgLTAsMCArMSw3NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEJpbmRHcm91cDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsK
K30KKworY2xhc3MgUmVtb3RlQmluZEdyb3VwIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVz
c2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUJpbmRHcm91cD4g
Y3JlYXRlKFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmIGJpbmRHcm91cCwgV2ViR1BVOjpPYmplY3RI
ZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3RlQmluZEdyb3VwKGJpbmRHcm91cCwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1
YWwgflJlbW90ZUJpbmRHcm91cCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmpl
Y3RIZWFwOworCisgICAgUmVtb3RlQmluZEdyb3VwKFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmLCBX
ZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUJpbmRHcm91cChjb25zdCBSZW1vdGVC
aW5kR3JvdXAmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAoUmVtb3RlQmluZEdyb3Vw
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KGNvbnN0IFJlbW90
ZUJpbmRHcm91cCYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KFJl
bW90ZUJpbmRHcm91cCYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1l
c3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJH
UFU6OkJpbmRHcm91cD4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1f
b2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZDdmOTQxYWQ2MmM5ODUwNzNlYWJmZDMzYzU1Y2MxZGRmYzNlNmE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUJpbmRHcm91cCBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhj
MGYwZTExZTc3NDllOTk5ZjE0MTY3MWIyNWM4MGMzZDU4NjhjYjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cExheW91dC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVtb3RlQmluZEdyb3VwTGF5b3V0OjpSZW1vdGVCaW5kR3JvdXBMYXlvdXQo
UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYgYmluZEdyb3VwTGF5b3V0LCBXZWJHUFU6Ok9i
amVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYmluZEdyb3VwTGF5b3V0KQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUJpbmRHcm91cExh
eW91dDo6flJlbW90ZUJpbmRHcm91cExheW91dCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQmluZEdy
b3VwTGF5b3V0OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
bGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
ZmRhY2FlYTJhNTQzOWQxY2JlNzFjNmE4ZmIzZTE5YzgxODU4NTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cExheW91dC5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CitjbGFzcyBCaW5kR3JvdXBMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUJp
bmRHcm91cExheW91dCBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShQ
QUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0JiBiaW5kR3JvdXBMYXlvdXQsIFdlYkdQVTo6T2Jq
ZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVCaW5kR3JvdXBMYXlvdXQoKTsKKworcHJpdmF0ZToK
KyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUJpbmRHcm91cExheW91
dChQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisK
KyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgUmVtb3RlQmluZEdyb3VwTGF5b3V0Jikg
PSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0KFJlbW90ZUJpbmRHcm91cExheW91
dCYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmIG9wZXJhdG9yPShjb25z
dCBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBM
YXlvdXQmIG9wZXJhdG9yPShSZW1vdGVCaW5kR3JvdXBMYXlvdXQmJikgPSBkZWxldGU7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5n
JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+IG1fYmFja2luZzsK
KyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwTGF5b3V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdl
Y2QyOTQ2NDk0OGI5Yzk4MjU2MWU3M2ZjMjhiZmU1MjYzNzA2NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisg
KiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQgTm90UmVm
Q291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmMyNmU0YjU4ODllMDgzMTNkNmE3
YjkzZjdlZDE2NGRmNTZlYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQnVmZmVy
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RI
ZWFwLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCdWZmZXI6OlJlbW90ZUJ1ZmZl
cihQQUw6OldlYkdQVTo6QnVmZmVyJiBidWZmZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0
SGVhcCkKKyAgICA6IG1fYmFja2luZyhidWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0
SGVhcCkKK3sKK30KKworUmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKCkKK3sKK30KKwordm9p
ZCBSZW1vdGVCdWZmZXI6Om1hcEFzeW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9k
ZUZsYWdzLCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJB
TShtYXBNb2RlRmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9Q
QVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjp1bm1hcChWZWN0b3I8dWlu
dDhfdD4mJiBkYXRhKQoreworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKK30KKwordm9pZCBSZW1v
dGVCdWZmZXI6OmRlc3Ryb3koKQoreworfQorCit2b2lkIFJlbW90ZUJ1ZmZlcjo6c2V0TGFiZWwo
U3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZm
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNGE0NWE3ZGRhZTdkNDMxODY3NTQwZGUwOTI4OTIyMTBkMzQxNTJk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCdWZmZXIuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVU1hcE1vZGUuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xh
c3MgQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7
CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVCdWZmZXIgZmluYWwgOiBwdWJs
aWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVtb3RlQnVmZmVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkJ1ZmZlciYgYnVmZmVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVCdWZmZXIoYnVmZmVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+UmVtb3RlQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVj
dEhlYXA7CisKKyAgICBSZW1vdGVCdWZmZXIoUEFMOjpXZWJHUFU6OkJ1ZmZlciYsIFdlYkdQVTo6
T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlQnVmZmVyKGNvbnN0IFJlbW90ZUJ1ZmZlciYpID0g
ZGVsZXRlOworICAgIFJlbW90ZUJ1ZmZlcihSZW1vdGVCdWZmZXImJikgPSBkZWxldGU7CisgICAg
UmVtb3RlQnVmZmVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQnVmZmVyJikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQnVmZmVyJiBvcGVyYXRvcj0oUmVtb3RlQnVmZmVyJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIG1hcEFzeW5jKFBBTDo6
V2ViR1BVOjpNYXBNb2RlRmxhZ3MsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4g
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemVGb3JNYXAsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOworICAgIHZv
aWQgdW5tYXAoVmVjdG9yPHVpbnQ4X3Q+JiYpOworCisgICAgdm9pZCBkZXN0cm95KCk7CisKKyAg
ICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QnVmZmVy
PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZWYxMDIx
OGUyOTI0MTllNWFiNzNlYTk0YzA3ODk4ODIwZGY4YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDMzIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlQnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2
b2lkIE1hcEFzeW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzLCBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6U2l6ZTY0PiBzaXplKSAtPiAoVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9u
b3VzCisgICAgdm9pZCBVbm1hcChWZWN0b3I8dWludDhfdD4gZGF0YSkKKyAgICB2b2lkIERlc3Ry
b3koKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29t
bWFuZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YTlkNTkxM2ZkM2U4YzFmZWM2
OTYxYTVhY2YyOGEwMmQ4MjBiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlQ29tbWFuZEJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQ29tbWFu
ZEJ1ZmZlcjo6UmVtb3RlQ29tbWFuZEJ1ZmZlcihQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYg
Y29tbWFuZEJ1ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9i
YWNraW5nKGNvbW1hbmRCdWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sK
K30KKworUmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIoKQoreworfQor
Cit2b2lkIFJlbW90ZUNvbW1hbmRCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQorewor
ICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYTU2ZmJhNmE4YzM2M2I2NjIyNTllNmI2YjUwM2RlNWJjYTU2MDA3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21tYW5kQnVmZmVyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbW1hbmRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNz
IFJlbW90ZUNvbW1hbmRCdWZmZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tbWFuZEJ1ZmZlcj4gY3Jl
YXRlKFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyJiBjb21tYW5kQnVmZmVyLCBXZWJHUFU6Ok9i
amVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdGVDb21tYW5kQnVmZmVyKGNvbW1hbmRCdWZmZXIsIG9iamVjdEhlYXApKTsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyKFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1v
dGVDb21tYW5kQnVmZmVyKGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZmZXImKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVDb21tYW5kQnVmZmVyKFJlbW90ZUNvbW1hbmRCdWZmZXImJikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQ29tbWFuZEJ1ZmZlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZm
ZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyJiBvcGVyYXRvcj0oUmVtb3Rl
Q29tbWFuZEJ1ZmZlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1l
c3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJH
UFU6OkNvbW1hbmRCdWZmZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFw
PiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjhjZTFiZTc2OWIwNTZkZTc2MDNkYjAwNjcwNDQyMTg1
NDE3ZGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAg
QEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1v
dGVDb21tYW5kQnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVs
KFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1YjQzNjQ3ZDg2ZDA5N2YxZmE2MDE1NzIxZWM3Y2Q5NjVhNjFlMzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5kRW5jb2Rlci5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVh
cC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbW1hbmRFbmNvZGVyOjpSZW1vdGVD
b21tYW5kRW5jb2RlcihQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXImIGNvbW1hbmRFbmNvZGVy
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoY29tbWFu
ZEVuY29kZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3Rl
Q29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2RlcigpCit7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6OmJlZ2luUmVuZGVyUGFzcyhjb25zdCBXZWJHUFU6OlJlbmRlclBh
c3NEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQVTo6Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYgZGVzY3Jp
cHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShk
ZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcigKKyAgICBXZWJHUFVJZGVudGlm
aWVyIHNvdXJjZSwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IHNvdXJjZU9mZnNldCwKKyAgICBX
ZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVz
dGluYXRpb25PZmZzZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplKQoreworICAgIFVO
VVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VPZmZzZXQpOworICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9u
T2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFu
ZEVuY29kZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXImIHNvdXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRl
c3RpbmF0aW9uLAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAg
IFVOVVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rl
cjo6Y29weVRleHR1cmVUb0J1ZmZlcigKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1
cmUmIHNvdXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRp
b24sCisgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpCit7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVT
RURfUEFSQU0oY29weVNpemUpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5
VGV4dHVyZVRvVGV4dHVyZSgKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIHNv
dXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAor
ICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAgIFVOVVNFRF9QQVJB
TShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BB
UkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZl
cigKKyAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpT
aXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplKQor
eworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3Rp
bmF0aW9uT2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3Rl
Q29tbWFuZEVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNv
ZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6
aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BB
UkFNKG1hcmtlckxhYmVsKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6d3JpdGVU
aW1lc3RhbXAoV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldCwgUEFMOjpXZWJHUFU6OlNpemUzMiBx
dWVyeUluZGV4KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeVNldCk7CisgICAgVU5VU0VEX1BB
UkFNKHF1ZXJ5SW5kZXgpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQoCisgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldCwKKyAgICBQQUw6OldlYkdQ
VTo6U2l6ZTMyIGZpcnN0UXVlcnksCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUNvdW50
LAorICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgUEFMOjpXZWJHUFU6OlNp
emU2NCBkZXN0aW5hdGlvbk9mZnNldCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlTZXQpOwor
ICAgIFVOVVNFRF9QQVJBTShmaXJzdFF1ZXJ5KTsKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlDb3Vu
dCk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oZGVz
dGluYXRpb25PZmZzZXQpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpmaW5pc2go
Y29uc3QgV2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVu
Y29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJl
bCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNjBlNGIx
Mzg2YTJlM2UwY2RkNTliNzZiZjJmOGY2NjRlYjM4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVy
LmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbW1hbmRFbmNvZGVyOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitzdHJ1Y3QgQ29tbWFuZEJ1ZmZl
ckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yOworc3RydWN0IEltYWdl
Q29weUJ1ZmZlcjsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworY2xhc3MgT2JqZWN0SGVhcDsK
K3N0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRvcjsKK30KKworY2xhc3MgUmVtb3RlQ29tbWFuZEVu
Y29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tbWFuZEVuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQ
VTo6Q29tbWFuZEVuY29kZXImIGNvbW1hbmRFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9i
amVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVDb21t
YW5kRW5jb2Rlcihjb21tYW5kRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZp
cnR1YWwgflJlbW90ZUNvbW1hbmRFbmNvZGVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21tYW5kRW5jb2RlcihQQUw6OldlYkdQVTo6
Q29tbWFuZEVuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUNvbW1h
bmRFbmNvZGVyKGNvbnN0IFJlbW90ZUNvbW1hbmRFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVt
b3RlQ29tbWFuZEVuY29kZXIoUmVtb3RlQ29tbWFuZEVuY29kZXImJikgPSBkZWxldGU7CisgICAg
UmVtb3RlQ29tbWFuZEVuY29kZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21tYW5kRW5jb2Rl
ciYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyJiBvcGVyYXRvcj0oUmVtb3Rl
Q29tbWFuZEVuY29kZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1N
ZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKworICAgIHZvaWQgYmVnaW5SZW5kZXJQYXNzKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGJlZ2luQ29tcHV0ZVBh
c3MoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcj4mLCBX
ZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY29weUJ1ZmZlclRvQnVmZmVyKAorICAgICAg
ICBXZWJHUFVJZGVudGlmaWVyIHNvdXJjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBz
b3VyY2VPZmZzZXQsCisgICAgICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTaXplNjQpOworCisgICAgdm9pZCBjb3B5QnVmZmVyVG9UZXh0dXJlKAorICAgICAg
ICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgc291cmNlLAorICAgICAgICBjb25zdCBX
ZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBXZWJH
UFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZmZXIo
CisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAorICAgICAg
ICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgICAgIGNv
bnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKTsKKworICAgIHZvaWQgY29weVRleHR1cmVU
b1RleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNl
LAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAor
ICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGZp
bGxCdWZmZXIoCisgICAgICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplNjQpOworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExh
YmVsKTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFy
a2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgd3JpdGVUaW1lc3RhbXAoV2Vi
R1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsKKworICAgIHZv
aWQgcmVzb2x2ZVF1ZXJ5U2V0KAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0UXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXpl
MzIgcXVlcnlDb3VudCwKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBkZXN0aW5hdGlvbk9mZnNldCk7CisKKyAgICB2b2lk
IGZpbmlzaChjb25zdCBXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRl
bnRpZmllcik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6
OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmpl
Y3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRF
bmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMGJmMzMxMTQ4ZDJlOTUzMWM1OTdjYjlj
ZGRkNjE3M2I3ZDI5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsNDMgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdl
cyAtPiBSZW1vdGVDb21tYW5kRW5jb2RlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9p
ZCBCZWdpblJlbmRlclBhc3MoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
QmVnaW5Db21wdXRlUGFzcyhzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFz
c0Rlc2NyaXB0b3I+IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQorICAgIHZvaWQgQ29weUJ1ZmZlclRvQnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBzb3VyY2UsIFBBTDo6V2ViR1BVOjpTaXplNjQgc291cmNlT2Zmc2V0LCBXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgZGVzdGluYXRpb24sIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25P
ZmZzZXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKKyAgICB2b2lkIENvcHlCdWZmZXJUb1Rl
eHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciBzb3VyY2UsIFdlYktpdDo6V2Vi
R1BVOjpJbWFnZUNvcHlUZXh0dXJlIGRlc3RpbmF0aW9uLCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50
M0QgY29weVNpemUpCisgICAgdm9pZCBDb3B5VGV4dHVyZVRvQnVmZmVyKFdlYktpdDo6V2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZl
ciBkZXN0aW5hdGlvbiwgV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZv
aWQgQ29weVRleHR1cmVUb1RleHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUg
c291cmNlLCBXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgV2Vi
S2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZvaWQgRmlsbEJ1ZmZlcihXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVz
dGluYXRpb25PZmZzZXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKKyAgICB2b2lkIFB1c2hE
ZWJ1Z0dyb3VwKFN0cmluZyBncm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisg
ICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBX
cml0ZVRpbWVzdGFtcChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpX
ZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgUmVzb2x2ZVF1ZXJ5U2V0KFdlYktp
dDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
UXVlcnksIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlDb3VudCwgV2ViS2l0OjpXZWJHUFVJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0
KQorICAgIHZvaWQgRmluaXNoKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRv
ciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2
b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5j
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1MGE5ZjZkZjAwZjQ1YzFjMjE1
OWZjNjFiMzdjN2JlMjFlZjkwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcApAQCAt
MCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciYgY29tcHV0ZVBhc3NFbmNvZGVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoY29tcHV0ZVBhc3NFbmNv
ZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlcjo6flJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlcigpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyIGNv
bXB1dGVQaXBlbGluZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29tcHV0ZVBpcGVsaW5lKTsKK30K
Kwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmRpc3BhdGNoKFBBTDo6V2ViR1BVOjpT
aXplMzIgeCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB5LCBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHopCit7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAg
IFVOVVNFRF9QQVJBTSh5KTsKKyAgICBVTlVTRURfUEFSQU0oeik7Cit9CisKK3ZvaWQgUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNwYXRjaEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5k
aXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RP
ZmZzZXQpOworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGlu
ZVN0YXRpc3RpY3NRdWVyeShXZWJHUFVJZGVudGlmaWVyIHF1ZXJ5U2V0LCBQQUw6OldlYkdQVTo6
U2l6ZTMyIHF1ZXJ5SW5kZXgpCit7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBV
TlVTRURfUEFSQU0ocXVlcnlJbmRleCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyOjplbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXI6OnNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViR1BV
SWRlbnRpZmllciBiaW5kR3JvdXAsCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJH
UFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIG9mZnNldHMpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0o
b2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwdXNoRGVidWdH
cm91cChTdHJpbmcmJiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVs
KTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQor
eworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIo
U3RyaW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsK
K30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxh
YmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdhZmJkOGU5YzU0ZWY2MjQ3MWZkMDg0ZDMx
MjZmODFmMTI4ZWM1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmgKQEAgLTAsMCArMSw5
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdy
YWxUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbXB1dGVQYXNzRW5j
b2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xh
c3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpDb21w
dXRlUGFzc0VuY29kZXImIGNvbXB1dGVQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBv
YmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyKGNvbXB1dGVQYXNzRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0K
KworICAgIHZpcnR1YWwgflJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlcigpOworCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAm
KTsKKworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcihjb25zdCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5j
b2RlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYpID0gZGVsZXRl
OworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZUNvbXB1dGVQ
YXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3Nh
Z2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCisgICAgdm9pZCBzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
c3BhdGNoKFBBTDo6V2ViR1BVOjpTaXplMzIgeCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPiB5LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+KTsKKyAgICB2b2lk
IGRpc3BhdGNoSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAgICB2b2lkIGJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVy
eUluZGV4KTsKKyAgICB2b2lkIGVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CisKKyAgICB2
b2lkIGVuZFBhc3MoKTsKKworICAgIHZvaWQgc2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRl
eDMyLCBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6
OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYpOworCisgICAgdm9pZCBwdXNoRGVidWdH
cm91cChTdHJpbmcmJiBncm91cExhYmVsKTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAg
ICB2b2lkIGluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZv
aWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFz
c0VuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIu
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZiZDJiNTcyY2JhNTQxMWEyM2MyOWM5N2QwN2NjNmMw
YzBlYzJmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsNDAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisg
KiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAt
PiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZv
aWQgU2V0UGlwZWxpbmUoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBEaXNwYXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB6KQor
ICAgIHZvaWQgRGlzcGF0Y2hJbmRpcmVjdChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJl
Y3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBC
ZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXgpCisgICAgdm9pZCBFbmRQaXBl
bGluZVN0YXRpc3RpY3NRdWVyeSgpCisgICAgdm9pZCBFbmRQYXNzKCkKKyAgICB2b2lkIFNldEJp
bmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJE
eW5hbWljT2Zmc2V0Pj4gZHluYW1pY09mZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChT
dHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5z
ZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZvaWQgU2V0TGFiZWwoU3Ry
aW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YjlkOTA5NDgxOTJjNGJmMDAzNDFjZjhiZTY4ZjQ2ZmRlNGNmZGFjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmUu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbXB1dGVQaXBlbGluZTo6UmVtb3Rl
Q29tcHV0ZVBpcGVsaW5lKFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUmIGNvbXB1dGVQaXBl
bGluZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGNv
bXB1dGVQaXBlbGluZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitS
ZW1vdGVDb21wdXRlUGlwZWxpbmU6On5SZW1vdGVDb21wdXRlUGlwZWxpbmUoKQoreworfQorCit2
b2lkIFJlbW90ZUNvbXB1dGVQaXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGlu
ZGV4LCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
cHV0ZVBpcGVsaW5lOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFS
QU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmViMzQwNDNkNzQ4ZmJmN2VmNmJlYTJiMzJkNTA5ZTZmMGNmMmIwMjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CitjbGFzcyBDb21wdXRlUGlwZWxpbmU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90
ZUNvbXB1dGVQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVDb21wdXRlUGlwZWxpbmU+IGNyZWF0
ZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lJiBjb21wdXRlUGlwZWxpbmUsIFdlYkdQVTo6
T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW90ZUNvbXB1dGVQaXBlbGluZShjb21wdXRlUGlwZWxpbmUsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21wdXRlUGlwZWxpbmUoKTsKKworcHJpdmF0
ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUNvbXB1dGVQaXBl
bGluZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7
CisKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
JikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lKFJlbW90ZUNvbXB1dGVQaXBl
bGluZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxpbmUmIG9wZXJhdG9yPShj
b25zdCBSZW1vdGVDb21wdXRlUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRl
UGlwZWxpbmUmIG9wZXJhdG9yPShSZW1vdGVDb21wdXRlUGlwZWxpbmUmJikgPSBkZWxldGU7CisK
KyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVj
dGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgZ2V0QmluZEdyb3Vw
TGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc2V0
TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+
IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDQ1OWFhNTkyMzQyOTM4MWQzNzYwZjUyZmI2ZTNjNDg3YmJhYzZlMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisg
KiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVDb21wdXRlUGlw
ZWxpbmUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgR2V0QmluZEdyb3VwTGF5b3V0
KHVpbnQzMl90IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzhkMGUxZGNjZmU3ZWQ3NzcyNzY0MTU1NjQ1YjEyMDk1ZmU2ZTgwZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlRGV2aWNlLmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVEZXZpY2UuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlRGV2aWNlOjpSZW1vdGVEZXZpY2UoUEFMOjpXZWJHUFU6OkRldmljZSYgZGV2aWNl
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoZGV2aWNl
KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZURldmljZTo6
flJlbW90ZURldmljZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpkZXN0cm95KCkKK3sK
K30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUJ1ZmZlcihjb25zdCBXZWJHUFU6OkJ1ZmZl
ckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlVGV4dHVyZShjb25zdCBXZWJHUFU6
OlRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIoY29uc3Qg
V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjppbXBvcnRFeHRlcm5h
bFRleHR1cmUoY29uc3QgV2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1v
dGVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXZWJHUFU6OkJpbmRHcm91cExh
eW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50
aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29u
c3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7Cisg
ICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwKGNvbnN0IFdlYkdQVTo6QmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
RGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
VU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJH
UFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5V
U0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0o
ZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJl
bW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7
CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNy
ZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKKyAgICBVTlVTRURfUEFS
QU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlQ29tbWFuZEVuY29k
ZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4m
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBXZWJHUFU6
OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVO
VVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVF1
ZXJ5U2V0KGNvbnN0IFdlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3Ip
OworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6
OnB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciBlcnJvckZpbHRlcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZXJyb3JGaWx0ZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6
cG9wRXJyb3JTY29wZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJHUFU6OkVycm9yPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJh
Y2spOworfQorCit2b2lkIFJlbW90ZURldmljZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7
CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZWEyMGE3M2JiYmU1ZDA3NjM4MWY4NzFkZjI2MmYyZDE4NDVjODNhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2Uu
aApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSAiV2ViR1BVRXJyb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oPgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2Ns
YXNzIERldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUg
eworc3RydWN0IEJpbmRHcm91cERlc2NyaXB0b3I7CitzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvcjsKK3N0cnVjdCBCdWZmZXJEZXNjcmlwdG9yOworc3RydWN0IENvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvcjsKK3N0cnVjdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IEV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3I7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBRdWVyeVNldERlc2NyaXB0b3I7CitzdHJ1Y3Qg
UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yOworc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yOworc3RydWN0IFNoYWRlck1vZHVsZURl
c2NyaXB0b3I7CitzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJlbW90ZURl
dmljZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZW1vdGVEZXZpY2U+IGNyZWF0ZShQQUw6OldlYkdQVTo6RGV2aWNl
JiBkZXZpY2UsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZURldmljZShkZXZpY2UsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB+UmVtb3RlRGV2aWNlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVEZXZpY2UoUEFMOjpXZWJHUFU6OkRldmljZSYs
IFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlRGV2aWNlKGNvbnN0IFJlbW90ZURl
dmljZSYpID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZShSZW1vdGVEZXZpY2UmJikgPSBkZWxl
dGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlRGV2aWNlJikgPSBk
ZWxldGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0oUmVtb3RlRGV2aWNlJiYpID0gZGVs
ZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZl
ckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGRlc3Ry
b3koKTsKKworICAgIHZvaWQgY3JlYXRlQnVmZmVyKGNvbnN0IFdlYkdQVTo6QnVmZmVyRGVzY3Jp
cHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlVGV4dHVyZShjb25zdCBX
ZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBj
cmVhdGVTYW1wbGVyKGNvbnN0IFdlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3ImLCBXZWJHUFVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGltcG9ydEV4dGVybmFsVGV4dHVyZShjb25zdCBXZWJHUFU6OkV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQg
Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IFdlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlUGlwZWxpbmVMYXlvdXQo
Y29uc3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGNyZWF0ZUJpbmRHcm91cChjb25zdCBXZWJHUFU6OkJpbmRHcm91cERlc2Ny
aXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY3JlYXRlU2hhZGVyTW9kdWxl
KGNvbnN0IFdlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIp
OworICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlUmVu
ZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJH
UFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0
IFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZVJlbmRlclBp
cGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJH
UFVJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisKKyAgICB2
b2lkIGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVh
dGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY3JlYXRlUXVlcnlTZXQo
Y29uc3QgV2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgcHVzaEVycm9yU2NvcGUoUEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyKTsKKyAgICB2
b2lkIHBvcEVycm9yU2NvcGUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8V2ViR1BVOjpFcnJvcj4mJik+JiYpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7
CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJH
UFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDA3ZWNmMjcyOWVkNTM4NzEyZWY3ODEyNDYxNDBiNTU1
YWVjYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0OCBAQAorLyog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZURldmlj
ZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBEZXN0cm95KCkKKyAgICB2b2lkIENy
ZWF0ZUJ1ZmZlcihXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBX
ZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVRleHR1
cmUoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlU2FtcGxlcihXZWJL
aXQ6OldlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBJbXBvcnRFeHRlcm5hbFRleHR1cmUoV2Vi
S2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVCaW5kR3JvdXBM
YXlvdXQoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3IgZGVzY3JpcHRv
ciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVQ
aXBlbGluZUxheW91dChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
Q3JlYXRlQmluZEdyb3VwKFdlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3Jl
YXRlU2hhZGVyTW9kdWxlKFdlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIHZvaWQgQ3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICB2b2lkIENyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKFdlYktpdDo6V2ViR1BV
OjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlUmVu
ZGVyUGlwZWxpbmVBc3luYyhXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBT
eW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlQ29tbWFuZEVuY29kZXIoc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OldlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVJlbmRlckJ1
bmRsZUVuY29kZXIoV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZv
aWQgQ3JlYXRlUXVlcnlTZXQoV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvciBkZXNj
cmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFB1
c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciBlcnJvckZpbHRlcikKKyAgICB2
b2lkIFBvcEVycm9yU2NvcGUoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYkdQVTo6RXJy
b3I+IGVycm9yKSBTeW5jaHJvbm91cworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OGJjNGQ5N2I1ZjBiODdmZTkxNmJkNzA1M2NkNDNkODQ1N2E2OTdjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRl
cm5hbFRleHR1cmUuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1JlbW90ZUV4dGVybmFsVGV4dHVyZTo6UmVtb3RlRXh0ZXJuYWxUZXh0
dXJlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmIGV4dGVybmFsVGV4dHVyZSwgV2ViR1BV
OjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGV4dGVybmFsVGV4dHVy
ZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVFeHRlcm5h
bFRleHR1cmU6On5SZW1vdGVFeHRlcm5hbFRleHR1cmUoKQoreworfQorCit2b2lkIFJlbW90ZUV4
dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BB
UkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZmNkZTNkNzhkZDIzZDVkZDgwM2VlNTNjYjY5NDRjOGY4YTg1YzNkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRl
cm5hbFRleHR1cmUuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpX
ZWJHUFUgeworY2xhc3MgRXh0ZXJuYWxUZXh0dXJlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1v
dGVFeHRlcm5hbFRleHR1cmUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlRXh0ZXJuYWxUZXh0dXJlPiBjcmVh
dGUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYgZXh0ZXJuYWxUZXh0dXJlLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVFeHRlcm5hbFRleHR1cmUoZXh0ZXJuYWxUZXh0dXJlLCBvYmplY3RIZWFwKSk7
CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlRXh0ZXJuYWxUZXh0dXJlKCk7CisKK3ByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVFeHRlcm5hbFRl
eHR1cmUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYsIFdlYkdQVTo6T2JqZWN0SGVhcCYp
OworCisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKGNvbnN0IFJlbW90ZUV4dGVybmFsVGV4dHVy
ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZShSZW1vdGVFeHRlcm5hbFRl
eHR1cmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJikgPSBkZWxldGU7CisgICAgUmVtb3RlRXh0ZXJu
YWxUZXh0dXJlJiBvcGVyYXRvcj0oUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0
cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlPiBtX2JhY2tp
bmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4
dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkZWQyNzhmZjI5MjRjMjQzMDRiMGUyM2EyZjAzYWQ5ZWI4ODA0OTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVy
bmFsVGV4dHVyZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIE5v
dFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ0MGY1MDViY2I0MDYzNTYzNGM5NjVm
ZGZhYmZhYzFiMDcyNDg5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUdQVS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitSZW1vdGVHUFU6OlJlbW90ZUdQVShQQUw6OldlYkdQVTo6R1BVJiBncHUsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhncHUpCisgICAgLCBt
X29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlR1BVOjp+UmVtb3RlR1BVKCkK
K3sKK30KKwordm9pZCBSZW1vdGVHUFU6OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFdlYkdQVTo6UmVx
dWVzdEFkYXB0ZXJPcHRpb25zJiBvcHRpb25zLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nJiYsIFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRM
aW1pdHMmJik+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOworICAg
IFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ5MmQyOWMy
NTZkYjY5MjY4ZWI4Y2ZjZWNiMTk2NjY1MmJhMzZmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgKQEAgLTAsMCAr
MSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgiCisj
aW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJH
UFUgeworY2xhc3MgR1BVOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdl
YkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFJlcXVlc3RBZGFwdGVyT3B0aW9uczsK
K30KKworY2xhc3MgUmVtb3RlR1BVIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJl
Y2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUdQVT4gY3JlYXRlKFBBTDo6
V2ViR1BVOjpHUFUmIGdwdSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlR1BVKGdwdSwgb2JqZWN0SGVhcCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUdQVSgpOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlR1BVKFBBTDo6V2ViR1BVOjpHUFUm
LCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUdQVShjb25zdCBSZW1vdGVHUFUm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVHUFUoUmVtb3RlR1BVJiYpID0gZGVsZXRlOworICAgIFJl
bW90ZUdQVSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUdQVSYpID0gZGVsZXRlOworICAgIFJlbW90
ZUdQVSYgb3BlcmF0b3I9KFJlbW90ZUdQVSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFU6
OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcmJiwgV2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYmLCBXZWJHUFU6OlN1cHBvcnRlZExpbWl0
cyYmKT4mJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkdQVT4gbV9iYWNraW5nOworICAgIFJl
ZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjU4ZTdmNWM3Y2U0MTY3Y2NkMzRkNTkxZDViMmYxMmVl
NjE3YTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUdQVSBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBSZXF1ZXN0QWRhcHRlcihXZWJLaXQ6OldlYkdQ
VTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zIG9wdGlvbnMpIC0+IChTdHJpbmcgbmFtZSwgV2ViS2l0
OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRlZEZlYXR1cmVzLCBXZWJLaXQ6Oldl
YkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0cykgU3luY2hyb25vdXMKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMGZh
ZGZlNjZjNDg1MDc1ZTkxNmQ1ODYyODYwNWNmZDU0NDNjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbW90ZVBpcGVsaW5lTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlUGlwZWxpbmVMYXlvdXQ6OlJlbW90ZVBpcGVsaW5lTGF5b3V0KFBBTDo6V2Vi
R1BVOjpQaXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQsIFdlYkdQVTo6T2JqZWN0SGVhcCYg
b2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhwaXBlbGluZUxheW91dCkKKyAgICAsIG1fb2Jq
ZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVQaXBlbGluZUxheW91dDo6flJlbW90
ZVBpcGVsaW5lTGF5b3V0KCkKK3sKK30KKwordm9pZCBSZW1vdGVQaXBlbGluZUxheW91dDo6c2V0
TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVBpcGVsaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNlOWRhNTBlOTA0NDJkMTIz
MjQyNTg2OGY5NDkyZGMwNWJlZmYyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuaApAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJX
ZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUGlwZWxp
bmVMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsK
K2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVBpcGVsaW5lTGF5b3V0IGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlBpcGVsaW5l
TGF5b3V0JiBwaXBlbGluZUxheW91dCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUGlwZWxpbmVMYXlvdXQo
cGlwZWxpbmVMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1v
dGVQaXBlbGluZUxheW91dCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RI
ZWFwOworCisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQoUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5
b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dChj
b25zdCBSZW1vdGVQaXBlbGluZUxheW91dCYpID0gZGVsZXRlOworICAgIFJlbW90ZVBpcGVsaW5l
TGF5b3V0KFJlbW90ZVBpcGVsaW5lTGF5b3V0JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVBpcGVs
aW5lTGF5b3V0JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUGlwZWxpbmVMYXlvdXQmKSA9IGRlbGV0
ZTsKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dCYgb3BlcmF0b3I9KFJlbW90ZVBpcGVsaW5lTGF5
b3V0JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6
OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UGlwZWxp
bmVMYXlvdXQ+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0ODM0ZjhlMWZiOWQxNTcyMzMyY2UyZTYyYmFiNmEzODE4MmZjMWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8q
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVQaXBl
bGluZUxheW91dCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJp
bmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MGMzYjk3OGU5MjliMzVjOWI5MDViOTJiOTQ1NGIzN2UwMmIzZTk0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNl
dC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZW1vdGVRdWVyeVNldC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUXVlcnlTZXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVF1
ZXJ5U2V0OjpSZW1vdGVRdWVyeVNldChQQUw6OldlYkdQVTo6UXVlcnlTZXQmIHF1ZXJ5U2V0LCBX
ZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocXVlcnlTZXQp
CisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUXVlcnlTZXQ6
On5SZW1vdGVRdWVyeVNldCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3ko
KQoreworfQorCit2b2lkIFJlbW90ZVF1ZXJ5U2V0OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkK
K3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNjUwMmViODE3NTRiNTdjYmFhMDc5NDI5YzI4ZTRkZTQ1ZTc2OTA4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVR
dWVyeVNldC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CitjbGFzcyBRdWVyeVNldDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFj
ZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUXVlcnlTZXQg
ZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8UmVtb3RlUXVlcnlTZXQ+IGNyZWF0ZShQQUw6OldlYkdQVTo6UXVlcnlTZXQm
IHF1ZXJ5U2V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVRdWVyeVNldChxdWVyeVNldCwgb2JqZWN0SGVh
cCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVF1ZXJ5U2V0KCk7CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVRdWVyeVNldChQQUw6
OldlYkdQVTo6UXVlcnlTZXQmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVF1
ZXJ5U2V0KGNvbnN0IFJlbW90ZVF1ZXJ5U2V0JikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVlcnlT
ZXQoUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVlcnlTZXQmIG9wZXJh
dG9yPShjb25zdCBSZW1vdGVRdWVyeVNldCYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXJ5U2V0
JiBvcGVyYXRvcj0oUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRM
YWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiBtX2JhY2tp
bmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXJ5U2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2E4MjYwMzQwZWFi
ZTlmMjAzNjI2ODAxM2EwMjA2OWUwZmI0N2UwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
bWVzc2FnZXMgLT4gUmVtb3RlUXVlcnlTZXQgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZv
aWQgRGVzdHJveSgpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVF1ZXVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTExNjUxODM1NTEzZTA5Y2E2NzY4NjQ0Yjc4
MDZjODg2M2UxNDRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVRdWV1ZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1JlbW90ZVF1ZXVlOjpSZW1vdGVRdWV1ZShQQUw6OldlYkdQVTo6UXVldWUm
IHF1ZXVlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmco
cXVldWUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUXVl
dWU6On5SZW1vdGVRdWV1ZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OnN1Ym1pdChWZWN0
b3I8V2ViR1BVSWRlbnRpZmllcj4mJiBjb21tYW5kQnVmZmVycykKK3sKKyAgICBVTlVTRURfUEFS
QU0oY29tbWFuZEJ1ZmZlcnMpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdv
cmtEb25lKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OndyaXRlQnVm
ZmVyKAorICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyLAorICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgYnVmZmVyT2Zmc2V0LAorICAgIFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpCit7CisgICAgVU5V
U0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlck9mZnNldCk7CisgICAg
VU5VU0VEX1BBUkFNKGRhdGEpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjp3cml0ZVRleHR1cmUo
CisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBW
ZWN0b3I8dWludDhfdD4mJiBkYXRhLAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0
JiBkYXRhTGF5b3V0LAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIHNpemUpCit7CisgICAg
VU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAg
VU5VU0VEX1BBUkFNKGRhdGFMYXlvdXQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwor
dm9pZCBSZW1vdGVRdWV1ZTo6Y29weUV4dGVybmFsSW1hZ2VUb1RleHR1cmUoCisgICAgY29uc3Qg
V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkJiBkZXN0aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6
OkV4dGVudDNEJiBjb3B5U2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUXVldWU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVO
VVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMzAxZGFkMTU4
MzNkNjE3NzMyM2Q0Y2RjNjI1YTNlMmJkMmFjZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmgKQEAgLTAsMCAr
MSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldl
YkdQVUV4dGVudDNELmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5
cGVzLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFF1ZXVlOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitzdHJ1Y3QgSW1hZ2VDb3B5
RXh0ZXJuYWxJbWFnZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworc3RydWN0IEltYWdlQ29w
eVRleHR1cmVUYWdnZWQ7CitzdHJ1Y3QgSW1hZ2VEYXRhTGF5b3V0OworY2xhc3MgT2JqZWN0SGVh
cDsKK30KKworY2xhc3MgUmVtb3RlUXVldWUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUXVldWU+IGNyZWF0
ZShQQUw6OldlYkdQVTo6UXVldWUmIHF1ZXVlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhl
YXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVRdWV1ZShxdWV1
ZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVF1ZXVlKCk7CisK
K3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVRdWV1
ZShQQUw6OldlYkdQVTo6UXVldWUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90
ZVF1ZXVlKGNvbnN0IFJlbW90ZVF1ZXVlJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVldWUoUmVt
b3RlUXVldWUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVldWUmIG9wZXJhdG9yPShjb25zdCBS
ZW1vdGVRdWV1ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXVlJiBvcGVyYXRvcj0oUmVtb3Rl
UXVldWUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQ
Qzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKwor
ICAgIHZvaWQgc3VibWl0KFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiYmKTsKKworICAgIHZvaWQg
b25TdWJtaXR0ZWRXb3JrRG9uZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisK
KyAgICB2b2lkIHdyaXRlQnVmZmVyKAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwKKyAgICAgICAgVmVjdG9yPHVpbnQ4
X3Q+JiYpOworCisgICAgdm9pZCB3cml0ZVRleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiYm
LAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlRGF0YUxheW91dCYsCisgICAgICAgIGNvbnN0
IFdlYkdQVTo6RXh0ZW50M0QmIHNpemUpOworCisgICAgdm9pZCBjb3B5RXh0ZXJuYWxJbWFnZVRv
VGV4dHVyZSgKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBz
b3VyY2UsCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCYgZGVz
dGluYXRpb24sCisgICAgICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKTsKKwor
ICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpRdWV1
ZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVRdWV1ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY3NjBiYjMy
NmQ1Mjg5ZWU0YjRhY2YyMGJjYzc4YmE0MTczNGY1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzNSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
K21lc3NhZ2VzIC0+IFJlbW90ZVF1ZXVlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IFN1Ym1pdChWZWN0b3I8V2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyPiBjb21tYW5kQnVmZmVycykK
KyAgICB2b2lkIE9uU3VibWl0dGVkV29ya0RvbmUoKSAtPiAoKSBTeW5jaHJvbm91cworICAgIHZv
aWQgV3JpdGVCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6
V2ViR1BVOjpTaXplNjQgYnVmZmVyT2Zmc2V0LCBWZWN0b3I8dWludDhfdD4gZGF0YSkKKyAgICB2
b2lkIFdyaXRlVGV4dHVyZShXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5h
dGlvbiwgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEsIFdlYktpdDo6V2ViR1BVOjpJbWFnZURhdGFMYXlv
dXQgaW1hZ2VEYXRhTGF5b3V0LCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0Qgc2l6ZSkKKyAgICB2
b2lkIENvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlF
eHRlcm5hbEltYWdlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdn
ZWQgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICB2
b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
ckJ1bmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk0MDU3OWUyZDkwZTZhYjAxOWYzNWQwYjk2NzE0ZTkx
MzY4MzhlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlckJ1bmRs
ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0
SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxl
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVSZW5kZXJCdW5kbGU6OlJlbW90ZVJl
bmRlckJ1bmRsZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlJiByZW5kZXJCdW5kbGUsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJCdW5kbGUp
CisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUmVuZGVyQnVu
ZGxlOjp+UmVtb3RlUmVuZGVyQnVuZGxlKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5k
bGU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UyYWIwNGZjYjE0NTY5
ZmVhM2RlNWI5NGQ3OTVhNGNkNGJmNzI4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmgKQEAgLTAs
MCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
V2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFJlbmRl
ckJ1bmRsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgewor
Y2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUmVuZGVyQnVuZGxlIGZpbmFsIDog
cHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFJlbW90ZVJlbmRlckJ1bmRsZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUm
IHJlbmRlckJ1bmRsZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyQnVuZGxlKHJlbmRlckJ1bmRs
ZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVJlbmRlckJ1bmRs
ZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVt
b3RlUmVuZGVyQnVuZGxlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUmLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZShjb25zdCBSZW1vdGVSZW5kZXJCdW5k
bGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUoUmVtb3RlUmVuZGVyQnVuZGxl
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZSYgb3BlcmF0b3I9KGNvbnN0IFJl
bW90ZVJlbmRlckJ1bmRsZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZSYgb3Bl
cmF0b3I9KFJlbW90ZVJlbmRlckJ1bmRsZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6
Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
ckJ1bmRsZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzEyMjZjZjdmODEwZmVkMGM3OTRmMDAy
YjdmZWMyNzc0Mzg1MDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2Vz
IC0+IFJlbW90ZVJlbmRlckJ1bmRsZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBT
ZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE2NTI3ZjJmZjk5OTQ4MzU1NGU1OWRm
OGQ0NWZkYmZlY2RjYjliMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKQEAgLTAs
MCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihQ
QUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciYgcmVuZGVyQnVuZGxlRW5jb2RlciwgV2Vi
R1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlckJ1bmRs
ZUVuY29kZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoKQoreworfQor
Cit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldFBpcGVsaW5lKFdlYkdQVUlkZW50
aWZpZXIgcmVuZGVyUGlwZWxpbmUpCit7CisgICAgVU5VU0VEX1BBUkFNKHJlbmRlclBpcGVsaW5l
KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihX
ZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0IGluZGV4Rm9y
bWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6U2l6ZTY0PiBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNF
RF9QQVJBTShpbmRleEZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5V
U0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVy
IGJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc2xvdCk7CisgICAgVU5V
U0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VE
X1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRyYXco
UEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0
YW5jZUNvdW50LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RWZXJ0ZXgsIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkKK3sKKyAgICBVTlVTRURfUEFSQU0odmVydGV4Q291
bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKKyAgICBVTlVTRURfUEFSQU0o
Zmlyc3RWZXJ0ZXgpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKK30KKwordm9p
ZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6
ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5kZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9m
ZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNl
KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5kZXgpOworICAgIFVOVVNFRF9Q
QVJBTShiYXNlVmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0o
aW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRy
YXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJl
Y3RCdWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdE9mZnNldCk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRl
eDMyIGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGJpbmRHcm91cCwKKyAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNl
dHMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdy
b3VwKTsKKyAgICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNldHMpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworfQorCit2b2lkIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnBvcERlYnVnR3JvdXAoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQor
eworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjk4NTIyMTA0Nzc0NzUyYTBkNTFkNTM3ZTZk
NTYyN2M3Yjk5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMCwwICsxLDEw
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhG
b3JtYXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlw
ZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJCdW5kbGVFbmNvZGVy
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBP
YmplY3RIZWFwOworc3RydWN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyJiByZW5kZXJCdW5k
bGVFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKHJlbmRlckJ1
bmRsZUVuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB+UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2RlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOwor
CisgICAgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
RW5jb2RlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcihjb25zdCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJikgPSBkZWxldGU7CisgICAg
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJiYpID0g
ZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXImIG9wZXJhdG9yPShjb25zdCBS
ZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXImJikgPSBkZWxl
dGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UGlw
ZWxpbmUoV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNldEluZGV4QnVmZmVyKFdlYkdQ
VUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2
NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4pOworICAgIHZvaWQg
c2V0VmVydGV4QnVmZmVyKFBBTDo6V2ViR1BVOjpJbmRleDMyIHNsb3QsIFdlYkdQVUlkZW50aWZp
ZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpTaXplNjQ+KTsKKworICAgIHZvaWQgZHJhdyhQQUw6OldlYkdQVTo6U2l6ZTMyIHZlcnRleENv
dW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5j
ZSk7CisgICAgdm9pZCBkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQs
IFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlNpemUzMiBmaXJzdEluZGV4LAorICAgICAgICBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIg
YmFzZVZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKTsK
KworICAgIHZvaWQgZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIs
IFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpOworICAgIHZvaWQgZHJhd0luZGV4
ZWRJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6
U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsKKworICAgIHZvaWQgc2V0QmluZEdyb3VwKFBBTDo6V2Vi
R1BVOjpJbmRleDMyLCBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMp
OworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKTsKKyAgICB2
b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFya2VyKFN0cmluZyYm
IG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgZmluaXNoKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVu
ZGxlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRMYWJlbChT
dHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+IG1f
YmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lM2Y3Y2Y5MDM3MGNjNjcyOTE0ZjFmMjJlMTM0MDg3ZmE5ZGUxMmNiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDIgQEAK
Ky8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldFBp
cGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgU2V0
SW5kZXhCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2Vi
R1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIFNldFZl
cnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIERyYXcoUEFMOjpXZWJHUFU6
OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
SW5zdGFuY2UpCisgICAgdm9pZCBEcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4
Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNp
emUzMiBmaXJzdEluZGV4LCBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwg
UEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGlyZWN0
KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIERyYXdJbmRleGVkSW5kaXJlY3QoV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGlu
ZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgU2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMy
IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiBkeW5hbWljT2Zmc2V0
cykKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmluZyBncm91cExhYmVsKQorICAgIHZvaWQg
UG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcgbWFya2Vy
TGFiZWwpCisgICAgdm9pZCBGaW5pc2goV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWM5NzI5Y2UxYWQwOTU4NjNm
NjUwNDMzMGY5ZDUyMTVlNjQ1OTJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKQEAg
LTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoUEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiByZW5kZXJQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlclBhc3NFbmNvZGVyKQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjp+UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoKQoreworfQorCit2b2lkIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyIHJlbmRlclBpcGVs
aW5lKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJQaXBlbGluZSk7Cit9CisKK3ZvaWQgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldEluZGV4QnVmZmVyKFdlYkdQVUlkZW50aWZpZXIgYnVm
ZmVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpT
aXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4Rm9ybWF0
KTsKKyAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihQQUw6Oldl
YkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6
OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oc2xvdCk7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7Cisg
ICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQorCit2
b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVy
dGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFu
Y2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHZlcnRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0VmVydGV4KTsKKyAgICBVTlVT
RURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXI6OmRyYXdJbmRleGVkKFBBTDo6V2ViR1BVOjpTaXplMzIgaW5kZXhDb3VudCwgUEFMOjpXZWJH
UFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJ
bmRleCwKKyAgICBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwKKyAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGV4Q291bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKKyAgICBVTlVTRURf
UEFSQU0oZmlyc3RJbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VWZXJ0ZXgpOworICAgIFVO
VVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlcjo6ZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6
V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGly
ZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lk
IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0o
aW5kaXJlY3RCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRC
aW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgYmlu
ZEdyb3VwLAorICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5h
bWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kZXgp
OworICAgIFVOVVNFRF9QQVJBTShiaW5kR3JvdXApOworICAgIFVOVVNFRF9QQVJBTShkeW5hbWlj
T2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwp
OworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3Ry
aW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQoZmxvYXQgeCwgZmxv
YXQgeSwKKyAgICBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LAorICAgIGZsb2F0IG1pbkRlcHRo
LCBmbG9hdCBtYXhEZXB0aCkKK3sKKyAgICBVTlVTRURfUEFSQU0oeCk7CisgICAgVU5VU0VEX1BB
UkFNKHkpOworICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7CisgICAgVU5VU0VEX1BBUkFNKGhlaWdo
dCk7CisgICAgVU5VU0VEX1BBUkFNKG1pbkRlcHRoKTsKKyAgICBVTlVTRURfUEFSQU0obWF4RGVw
dGgpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdChQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlIHksCisgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHdpZHRoLCBQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0KQoreworICAgIFVOVVNFRF9QQVJBTSh4
KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CisgICAgVU5VU0VEX1BBUkFNKHdpZHRoKTsKKyAgICBV
TlVTRURfUEFSQU0oaGVpZ2h0KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0QmxlbmRDb25zdGFudChXZWJHUFU6OkNvbG9yIGNvbG9yKQoreworICAgIFVOVVNFRF9QQVJB
TShjb2xvcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxS
ZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpCit7CisgICAg
VU5VU0VEX1BBUkFNKHN0ZW5jaWxWYWx1ZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXI6OmJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4
KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZW5kT2NjbHVzaW9uUXVlcnkoKQoreworfQorCit2b2lkIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50
aWZpZXIgcXVlcnlTZXQsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKK3sKKyAgICBV
TlVTRURfUEFSQU0ocXVlcnlTZXQpOworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVl
cnkoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpleGVjdXRlQnVuZGxl
cyhWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJiByZW5kZXJCdW5kbGVzKQoreworICAgIFVOVVNF
RF9QQVJBTShyZW5kZXJCdW5kbGVzKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cjo6ZW5kUGFzcygpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldExh
YmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5M2Y2ODllMzI5ZmQ2
NTYxODk2NTQ4YWQxYTE0OThjMjExMDk5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmgK
QEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUNvbG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaD4KKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQ
QUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJQYXNzRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xh
c3MgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXImIHJlbmRlclBhc3NF
bmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlcihyZW5kZXJQYXNzRW5j
b2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIH5SZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXIoUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiwgV2Vi
R1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcihjb25zdCBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90
ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3Ry
ZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7CisKKyAgICB2b2lkIHNldFBpcGVsaW5lKFdlYkdQVUlkZW50aWZpZXIpOworCisg
ICAgdm9pZCBzZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5k
ZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTaXplNjQ+KTsKKyAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6
SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNl
dCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0Pik7CisKKyAgICB2b2lkIGRyYXco
UEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0
YW5jZUNvdW50LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6
OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworICAgIHZvaWQgZHJhd0luZGV4ZWQoUEFM
OjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNl
Q291bnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSk7CisKKyAgICB2b2lkIGRyYXdJbmRpcmVjdChXZWJH
UFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0
T2Zmc2V0KTsKKyAgICB2b2lkIGRyYXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBp
bmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAg
ICB2b2lkIHNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmll
ciwKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFt
aWNPZmZzZXQ+PiYmIGR5bmFtaWNPZmZzZXRzKTsKKworICAgIHZvaWQgcHVzaERlYnVnR3JvdXAo
U3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9p
ZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lkIHNl
dFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0IHksCisgICAgICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsCisgICAgICAgIGZsb2F0IG1pbkRlcHRoLCBmbG9hdCBtYXhEZXB0aCk7CisKKyAgICB2
b2lkIHNldFNjaXNzb3JSZWN0KFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4LCBQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlIHdpZHRoLCBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0
KTsKKworICAgIHZvaWQgc2V0QmxlbmRDb25zdGFudChXZWJHUFU6OkNvbG9yKTsKKyAgICB2b2lk
IHNldFN0ZW5jaWxSZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSk7CisKKyAgICB2
b2lkIGJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsK
KyAgICB2b2lkIGVuZE9jY2x1c2lvblF1ZXJ5KCk7CisKKyAgICB2b2lkIGJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVy
eUluZGV4KTsKKyAgICB2b2lkIGVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CisKKyAgICB2
b2lkIGV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiYmKTsKKyAgICB2b2lk
IGVuZFBhc3MoKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBB
TDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6
Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThiN2JhYWE4ZWFjMDli
Mzc1Y2ZiYTc4NGE5ZDMyOGJkZDZiNmFlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSw1MSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyIE5vdFJlZkNvdW50ZWQg
U3RyZWFtIHsKKyAgICB2b2lkIFNldFBpcGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorICAgIHZvaWQgU2V0SW5kZXhCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFM
OjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2
ND4gc2l6ZSkKKyAgICB2b2lkIFNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBz
bG90LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAg
ICB2b2lkIERyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6
OlNpemUzMiBpbnN0YW5jZUNvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCisgICAgdm9pZCBEcmF3SW5kZXhlZChQ
QUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFu
Y2VDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LCBQQUw6OldlYkdQVTo6U2ln
bmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNl
KQorICAgIHZvaWQgRHJhd0luZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVj
dEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIERy
YXdJbmRleGVkSW5kaXJlY3QoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVy
LCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgU2V0QmluZEdy
b3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFt
aWNPZmZzZXQ+PiBkeW5hbWljT2Zmc2V0cykKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmlu
ZyBncm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnRE
ZWJ1Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBTZXRWaWV3cG9ydChmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBtaW5EZXB0aCwg
ZmxvYXQgbWF4RGVwdGgpCisgICAgdm9pZCBTZXRTY2lzc29yUmVjdChQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHksIFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlIGhlaWdodCkKKyAgICB2b2lkIFNldEJsZW5kQ29uc3RhbnQoV2ViS2l0OjpXZWJHUFU6
OkNvbG9yIGNvbG9yKQorICAgIHZvaWQgU2V0U3RlbmNpbFJlZmVyZW5jZShQQUw6OldlYkdQVTo6
U3RlbmNpbFZhbHVlIHN0ZW5jaWxWYWx1ZSkKKyAgICB2b2lkIEJlZ2luT2NjbHVzaW9uUXVlcnko
UEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgRW5kT2NjbHVzaW9uUXVl
cnkoKQorICAgIHZvaWQgQmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQor
ICAgIHZvaWQgRW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQorICAgIHZvaWQgRXhlY3V0ZUJ1
bmRsZXMoVmVjdG9yPFdlYktpdDo6V2ViR1BVSWRlbnRpZmllcj4gYnVuZGxlcykKKyAgICB2b2lk
IEVuZFBhc3MoKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E0MGE5MDM2NDk5
MWVjNjRkZDMwYjQwZGRiZTc2YmJlOTdmMTc1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3Bw
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVuZGVyUGlwZWxpbmUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZW1vdGVSZW5kZXJQaXBlbGluZTo6UmVtb3RlUmVuZGVyUGlwZWxpbmUoUEFMOjpXZWJHUFU6OlJl
bmRlclBpcGVsaW5lJiByZW5kZXJQaXBlbGluZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RI
ZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlclBpcGVsaW5lKQorICAgICwgbV9vYmplY3RIZWFw
KG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVuZGVy
UGlwZWxpbmUoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBpcGVsaW5lOjpnZXRCaW5kR3Jv
dXBMYXlvdXQodWludDMyX3QgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVs
aW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmRlODhmY2FlNjk1MTgwNThjMjRmOWQxZWQ3NzI5NTIxY2U5OThj
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVyUGlwZWxpbmU7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9
CisKK2NsYXNzIFJlbW90ZVJlbmRlclBpcGVsaW5lIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFt
TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRlclBp
cGVsaW5lPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lJiByZW5kZXJQaXBlbGlu
ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyUGlwZWxpbmUocmVuZGVyUGlwZWxpbmUsIG9iamVj
dEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVSZW5kZXJQaXBlbGluZSgpOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUmVu
ZGVyUGlwZWxpbmUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZShjb25zdCBSZW1vdGVSZW5kZXJQaXBl
bGluZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBpcGVsaW5lKFJlbW90ZVJlbmRlclBp
cGVsaW5lJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBpcGVsaW5lJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlUmVuZGVyUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQ
aXBlbGluZSYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlclBpcGVsaW5lJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGdldEJpbmRHcm91cExh
eW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNldExh
YmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+IG1f
YmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNjODc5NDc3NGUwODY4MWRkOGQwYWIwZjEwNjI4N2ZmMmYzM2MzNWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJQaXBlbGluZSBO
b3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBHZXRCaW5kR3JvdXBMYXlvdXQodWludDMy
X3QgaW5kZXgsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICB2b2lk
IFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYjI0NmM4YzU2MGE3NzJhYmFlZTgwNGM2MWQ1NTg4YTA3NjU2ZDFiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVTYW1wbGVyLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZXIuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIoUEFMOjpXZWJHUFU6OlNhbXBsZXImIHNhbXBs
ZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhzYW1w
bGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVNhbXBs
ZXI6On5SZW1vdGVTYW1wbGVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVTYW1wbGVyOjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2Ft
cGxlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVT
YW1wbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhjOTcxZTEwNjlhMWE2Njc1ZDljM2IyODVkMTZhNmZlNzE3
ZTJjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlU2FtcGxlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBTYW1wbGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBS
ZW1vdGVTYW1wbGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZXI+IGNyZWF0ZShQQUw6OldlYkdQ
VTo6U2FtcGxlciYgc2FtcGxlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlcihzYW1wbGVyLCBv
YmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlU2FtcGxlcigpOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlU2FtcGxl
cihQQUw6OldlYkdQVTo6U2FtcGxlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVt
b3RlU2FtcGxlcihjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2Ft
cGxlcihSZW1vdGVTYW1wbGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVNhbXBsZXImIG9wZXJh
dG9yPShjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2FtcGxlciYg
b3BlcmF0b3I9KFJlbW90ZVNhbXBsZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVm
PFBBTDo6V2ViR1BVOjpTYW1wbGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0
SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWNkYWMxYjY5Y2M3NmU2MjQ4OTFlODhlYWQ4ZDFkNGE3MDZlNTUxNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICog
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlciBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWYwOTNk
Nzc5YWE3NzFkZWRmZWNlODFlNThlZjg0N2U4ZGM0NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5j
cHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVTaGFkZXJNb2R1bGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVt
b3RlU2hhZGVyTW9kdWxlOjpSZW1vdGVTaGFkZXJNb2R1bGUoUEFMOjpXZWJHUFU6OlNoYWRlck1v
ZHVsZSYgc2hhZGVyTW9kdWxlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
OiBtX2JhY2tpbmcoc2hhZGVyTW9kdWxlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVNoYWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSgpCit7Cit9
CisKK3ZvaWQgUmVtb3RlU2hhZGVyTW9kdWxlOjpjb21waWxhdGlvbkluZm8oV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJik+JiYg
Y2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1v
dGVTaGFkZXJNb2R1bGU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9Q
QVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEx
MjBjMGI1MzgwOTFiYTc0ZGZmNDEwMzBhMWZjOTRkOWUzYjk0MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9k
dWxlLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBTaGFkZXJN
b2R1bGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2Ns
YXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVNoYWRlck1vZHVsZSBmaW5hbCA6IHB1
YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVTaGFkZXJNb2R1bGU+IGNyZWF0ZShQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlJiBz
aGFkZXJNb2R1bGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNoYWRlck1vZHVsZShzaGFkZXJNb2R1bGUs
IG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVTaGFkZXJNb2R1bGUo
KTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90
ZVNoYWRlck1vZHVsZShQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUoY29uc3QgUmVtb3RlU2hhZGVyTW9kdWxl
JikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxlKFJlbW90ZVNoYWRlck1vZHVsZSYm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUmIG9wZXJhdG9yPShjb25zdCBSZW1v
dGVTaGFkZXJNb2R1bGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUmIG9wZXJh
dG9yPShSZW1vdGVTaGFkZXJNb2R1bGUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgY29tcGlsYXRpb25JbmZvKFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiYpPiYmKTsK
KworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpT
aGFkZXJNb2R1bGU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29i
amVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWM4M2FlNmY1YTJmNDFhNjk3OTRmOTExYmMxY2M1ZWE0MTI3ODUwZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVTaGFkZXJN
b2R1bGUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgQ29tcGlsYXRpb25JbmZvKCkg
LT4gKFZlY3RvcjxXZWJLaXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiBtZXNzYWdlcykg
U3luY2hyb25vdXMKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVRleHR1cmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGZkMjRkYzNhNTIzMmYwNDkxZDZkZTk0
ODVjYThlYWI4ODMxZjRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmNwcApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHR1cmUu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUoUEFMOjpX
ZWJHUFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICA6IG1fYmFja2luZyh0ZXh0dXJlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVRleHR1cmU6On5SZW1vdGVUZXh0dXJlKCkKK3sKK30KKwordm9pZCBS
ZW1vdGVUZXh0dXJlOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVUZXh0dXJlOjpkZXN0cm95KCkKK3sKK30KKwor
dm9pZCBSZW1vdGVUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVT
RURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzNWVkMjQ4
OWY1NzYzYWFmMjhmMDZlNGVmODc0YTVlMDYyZDJlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBUZXh0
dXJlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFz
cyBPYmplY3RIZWFwOworc3RydWN0IFRleHR1cmVWaWV3RGVzY3JpcHRvcjsKK30KKworY2xhc3Mg
UmVtb3RlVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVUZXh0dXJlPiBjcmVhdGUoUEFMOjpXZWJH
UFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVRleHR1cmUodGV4dHVyZSwg
b2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmUoKTsKKwor
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVRleHR1
cmUoUEFMOjpXZWJHUFU6OlRleHR1cmUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJl
bW90ZVRleHR1cmUoY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVRl
eHR1cmUoUmVtb3RlVGV4dHVyZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlJiBvcGVy
YXRvcj0oY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVRleHR1cmUm
IG9wZXJhdG9yPShSZW1vdGVUZXh0dXJlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNl
aXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25h
bDxXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mLCBXZWJHUFVJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAg
ICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpP
YmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ZlOWY2MGRjYjk5NjRiZWM1OGVlMDEwMzdmOWVmZDYzZTlh
NmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVUZXh0dXJl
IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIENyZWF0ZVZpZXcoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIERlc3Ryb3koKQorICAg
IHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0
dXJlVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhNGE3ODYzNmFmYmUxYWJiZGIyNjM4NWJjZjg4ODg1
MTE1MmNmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlVGV4dHVyZVZpZXcu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3Lmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVUZXh0dXJlVmlldzo6UmVtb3RlVGV4dHVy
ZVZpZXcoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3JiB0ZXh0dXJlVmlldywgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHRleHR1cmVWaWV3KQorICAgICwg
bV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVRleHR1cmVWaWV3Ojp+UmVt
b3RlVGV4dHVyZVZpZXcoKQoreworfQorCit2b2lkIFJlbW90ZVRleHR1cmVWaWV3OjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4
dHVyZVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlVGV4dHVyZVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDA1ZmNhZGJlNDc3MThkZDlkMDlhZDQzOTQ5
NjFkNzM1MGRkZDJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5oCkBAIC0wLDAgKzEsNzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBUZXh0dXJlVmlldzsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVh
cDsKK30KKworY2xhc3MgUmVtb3RlVGV4dHVyZVZpZXcgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlVGV4dHVy
ZVZpZXc+IGNyZWF0ZShQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIHRleHR1cmVWaWV3LCBXZWJH
UFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZW1vdGVUZXh0dXJlVmlldyh0ZXh0dXJlVmlldywgb2JqZWN0SGVhcCkpOworICAg
IH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmVWaWV3KCk7CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVUZXh0dXJlVmlldyhQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXcmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVRl
eHR1cmVWaWV3KGNvbnN0IFJlbW90ZVRleHR1cmVWaWV3JikgPSBkZWxldGU7CisgICAgUmVtb3Rl
VGV4dHVyZVZpZXcoUmVtb3RlVGV4dHVyZVZpZXcmJikgPSBkZWxldGU7CisgICAgUmVtb3RlVGV4
dHVyZVZpZXcmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVUZXh0dXJlVmlldyYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZVRleHR1cmVWaWV3JiBvcGVyYXRvcj0oUmVtb3RlVGV4dHVyZVZpZXcmJikgPSBk
ZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0
TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4gbV9i
YWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBm
ZGJiMDAzMDg3ZjNmY2M4ZmE0MDBjMDQyM2MxYjQ3MjQ5NjY5ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZp
ZXcubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVRleHR1cmVWaWV3IE5vdFJlZkNvdW50ZWQg
U3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVPYmplY3RIZWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjBlOTRmNmMyMTBiMGIwYzA5YWFm
YTg5NjY0N2VkMWZmNzY5NTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcApAQCAtMCwwICsxLDIz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVP
YmplY3RIZWFwLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQWRhcHRlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlci5oPgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmg+CisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUXVldWUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlckJ1bmRsZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVu
ZGVyQnVuZGxlRW5jb2Rlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
YW1wbGVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1
bGUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK09iamVjdEhlYXA6Ok9iamVjdEhlYXAoKQoreworfQor
CitPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCgpCit7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpB
ZGFwdGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+PihpdGVyYXRvci0+
dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVm
PFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJh
dG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
b2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6
OkJpbmRHcm91cD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cD4+KGl0ZXJhdG9y
LT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQq
IE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5k
KGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0
ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+Pihp
dGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3Rk
OjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBPYmplY3RIZWFwOjpjb252
ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRl
cmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQ
QUw6OldlYkdQVTo6QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZm
ZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmlu
ZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFz
dGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlcj4+KGl0
ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0
cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIE9iamVjdEhlYXA6
OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6
OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitj
b25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0
Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0
aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVy
dENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAg
aWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJH
UFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0
IFBBTDo6V2ViR1BVOjpEZXZpY2UqIE9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1f
b2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMu
ZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+
PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
c3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+PihpdGVyYXRvci0+dmFsdWUpLnB0cigp
OworfQorCitjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
R1BVPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6R1BVPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIo
KTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBPYmplY3RIZWFwOjpj
b252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwor
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OlBpcGVsaW5lTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UXVlcnlTZXRGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpR
dWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0Pj4oaXRlcmF0b3ItPnZh
bHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBPYmplY3RIZWFwOjpj
b252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChp
dGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
PFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZUVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBt
X29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3Rz
LmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVy
QnVuZGxlRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29k
ZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6UmVu
ZGVyQnVuZGxlKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVj
dHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgp
IHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
Pj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0
ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9yLT52
YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8
UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBsZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRl
cmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0g
bV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQ
VTo6U2FtcGxlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+PihpdGVyYXRvci0+
dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlm
aWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRz
X2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZh
bHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQ
QUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKwor
Y29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIE9iamVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
VGV4dHVyZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+PihpdGVyYXRvci0+dmFs
dWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIE9iamVjdEhl
YXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3Pj4oaXRlcmF0b3ItPnZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXc+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gSEFWRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
T2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVPYmplY3RIZWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ2ZDFlNTE3OTdiNjZhMGUzNmU2OGI3YzUx
MGJiNTAyYmQwMTk2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCkBAIC0wLDAgKzEsMTAwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHZhcmlhbnQ+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CisKK2NsYXNzIE9iamVjdEhlYXAgZmluYWwgOiBwdWJsaWMgV2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE9iamVjdEhlYXA+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmplY3RIZWFwKCkpOwor
ICAgIH0KKworICAgIH5PYmplY3RIZWFwKCk7CisKK3ByaXZhdGU6CisgICAgT2JqZWN0SGVhcCgp
OworCisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkFkYXB0ZXIqIGNvbnZlcnRBZGFwdGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkJp
bmRHcm91cCogY29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZp
bmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIGNvbnZlcnRCaW5k
R3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25z
dCBQQUw6OldlYkdQVTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNv
bnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Cisg
ICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29k
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6Oldl
YkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZSogY29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIGNvbnZlcnRE
ZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6
OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxp
bmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQ
QUw6OldlYkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1
ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6
OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlciog
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0UmVuZGVy
UGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQ
QUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBjb252
ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAg
Y29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
KworICAgIHVzaW5nIE9iamVjdCA9IHN0ZDo6dmFyaWFudDwKKyAgICAgICAgUmVmPFBBTDo6V2Vi
R1BVOjpBZGFwdGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+LAorICAg
ICAgICBSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4sCisgICAgICAgIFJlZjxQQUw6
OldlYkdQVTo6QnVmZmVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVy
PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4sCisgICAgICAgIFJl
ZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGlwZWxpbmU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4s
CisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6R1BVPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BV
OjpQaXBlbGluZUxheW91dD4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+LAor
ICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPiwKKyAg
ICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4sCisgICAgICAgIFJlZjxQQUw6
OldlYkdQVTo6U2FtcGxlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxl
PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPiwKKyAgICAgICAgUmVmPFBBTDo6
V2ViR1BVOjpUZXh0dXJlVmlldz4KKyAgICA+OworICAgIEhhc2hNYXA8V2ViR1BVSWRlbnRpZmll
ciwgT2JqZWN0PiBtX29iamVjdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaApp
bmRleCA4ZjdkMzYzM2RkMDJkOTBhMWE1NjA0YTAwNjM0ZTMxZmE1MWI1N2ZhLi4yNzBlMWViZTMx
MjM1Zjc3ODZkZjA3YjkwMDBhMWM4N2E1N2QyN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGVzdGluYXRpb25Db2xvclNw
YWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbWFnZURlY29kZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpp
bmRleCA4YmQwZGIyOTdiZmI0MDc0ZjY4OTAwNDJmY2RhNDc4NDUwZGYwNTY2Li4zMTk2YzVjZjU4
NmQyNGUxMDZhZjJiYWIwMWVjYjk0MmRlMWI0ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM1OCw2ICszNTgsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5u
b3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpUcmFuc2FjdGlvbklE
JywKICAgICAgICAgJ1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXInLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYktpdDo6WFJEZXZpY2VJZGVudGlmaWVyJywKQEAgLTY3OCwyMSArNjc5
LDY5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgIGhlYWRlcl9pbmZvc19hbmRf
dHlwZXMgPSBjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKHR5cGUpCiAKICAgICBzcGVjaWFsX2Nhc2Vz
ID0gewotICAgICAgICAnTWFjaFNlbmRSaWdodCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10s
Ci0gICAgICAgICdKU0M6Ok1lc3NhZ2VMZXZlbCc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVU
eXBlcy5oPiddLAotICAgICAgICAnSlNDOjpNZXNzYWdlU291cmNlJzogWyc8SmF2YVNjcmlwdENv
cmUvQ29uc29sZVR5cGVzLmg+J10sCiAgICAgICAgICdJUEM6OlNlbWFwaG9yZSc6IFsnIklQQ1Nl
bWFwaG9yZS5oIiddLAogICAgICAgICAnSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcic6IFsnIklu
c3BlY3RvckV4dGVuc2lvblR5cGVzLmgiJ10sCiAgICAgICAgICdJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbDo6Q29ubmVjdGlvblR5cGUnOiBbJzxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaD4nXSwKICAgICAgICAgJ0luc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0VHlw
ZSc6IFsnPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclRhcmdldC5oPiddLAotICAgICAgICAnV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9EaXNw
bGF5TGlzdC5oPiddLAorICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKKyAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsn
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLAorICAgICAgICAnTWFjaFNlbmRSaWdo
dCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10sCiAgICAgICAgICdNZWRpYVRpbWUnOiBbJzx3
dGYvTWVkaWFUaW1lLmg+J10sCiAgICAgICAgICdNb25vdG9uaWNUaW1lJzogWyc8d3RmL01vbm90
b25pY1RpbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25J
RC5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlJzogWyc8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6
OkJsZW5kRmFjdG9yJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rvci5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uJzogWyc8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OkJ1ZmZlckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZm
ZXJCaW5kaW5nVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNP
ZmZzZXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzJzogWyc8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNh
bnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
YW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNv
bG9yV3JpdGVGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JXcml0ZS5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbic6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg+J10sCisgICAgICAgICdQQUw6Oldl
YkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNv
bXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BV
OjpDdWxsTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpEZXB0aEJpYXMnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpEZXZpY2VM
b3N0UmVhc29uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29u
Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXInOiBbJzxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6
RmVhdHVyZU5hbWUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg+
J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RmlsdGVyTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVRmlsdGVyTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkZsYWdz
Q29uc3RhbnQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpGcm9udEZhY2UnOiBbJzxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZyb250RmFjZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkluZGV4MzIn
OiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAg
ICAgJ1BBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW5kZXhGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAor
ICAgICAgICAnUEFMOjpXZWJHUFU6OkxvYWRPcCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVTG9hZE9wLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmg+J10sCisgICAgICAgICdQQUw6Oldl
YkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpQb3dl
clByZWZlcmVuY2UnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBvd2VyUHJlZmVyZW5j
ZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oPiddLAorICAg
ICAgICAnUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5JzogWyc8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQcmltaXRpdmVUb3BvbG9neS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6
OlF1ZXJ5VHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmg+J10s
CisgICAgICAgICdQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTYW1wbGVNYXNrJzogWyc8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2Ft
cGxlckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmlu
ZGluZ1R5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZUZsYWdzJzog
Wyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJTdGFnZS5oPiddLAorICAgICAgICAn
UEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2l6ZTMyJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQ
QUw6OldlYkdQVTo6U2l6ZTY0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3Jh
bFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbic6IFsn
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oPiddLAorICAgICAg
ICAnUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0
dXJlQWNjZXNzJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3JlT3AnOiBbJzxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0
dXJlQXNwZWN0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0Lmg+
J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbic6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oPiddLAorICAgICAgICAnUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZSc6
IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlVXNhZ2VGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZVVzYWdlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4
dHVyZVZpZXdEaW1lbnNpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVW
aWV3RGltZW5zaW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0Jzog
Wyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaD4nXSwKKyAgICAgICAg
J1BBTDo6V2ViR1BVOjpWZXJ0ZXhTdGVwTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVmVydGV4U3RlcE1vZGUuaD4nXSwKKyAgICAgICAgJ1BsYXRmb3JtWFI6OkRldmljZTo6RnJh
bWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+J10sCiAgICAgICAgICdTZWNvbmRzJzog
Wyc8d3RmL1NlY29uZHMuaD4nXSwKKyAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0
cmluZy5oPiddLAogICAgICAgICAnVVJMJzogWyc8d3RmL1VSTEhhc2guaD4nXSwKICAgICAgICAg
J1dhbGxUaW1lJzogWyc8d3RmL1dhbGxUaW1lLmg+J10sCi0gICAgICAgICdTdHJpbmcnOiBbJzx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKLSAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFs
L1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXJjRGF0YSc6IFsnPFdlYkNvcmUv
SW5saW5lUGF0aERhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFn
cyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QmV6
aWVyQ3VydmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLApAQCAtNzA0LDEy
ICs3NTMsMTQgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3Jl
OjpDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCc6IFsnPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29y
ZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlJzogWyc8V2ViQ29yZS9Db2xvclNwYWNlLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL0Rpc3BsYXlMaXN0
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSc6IFsnPFdl
YkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRPcldv
cmtlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnOiBbJzxXZWJDb3JlL0RyYWdEYXRh
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2QnOiBbJzxXZWJDb3Jl
L0RyYWdBY3Rpb25zLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnT3BlcmF0aW9uJzogWyc8
V2ViQ29yZS9EcmFnQWN0aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ1NvdXJjZUFj
dGlvbic6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkR5
bmFtaWNSYW5nZU1vZGUnOiBbJzxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlJzogWyc8V2ViQ29yZS9HYW1lcGFk
UHJvdmlkZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMn
OiBbJzxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCkBA
IC03MzYsOCArNzg3LDggQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJDb3JlOjpMaW5lSm9pbic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJU
eXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyc6IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCc6IFsnPFdlYkNvcmUv
TWVkaWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZp
dHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5o
PiddLApAQCAtNzk1LDkgKzg0Niw5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAg
ICAgICAnV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8V2Vi
Q29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5mby5oIiddLAotICAgICAgICAnV2ViS2l0OjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUlkZW50aWZpZXInOiBbJyJJZGVudGlmaWVyVHlwZXMuaCIn
XSwKICAgICAgICAgJ1dlYktpdDo6QWxsb3dPdmVyd3JpdGUnOiBbJyJEb3dubG9hZElELmgiJ10s
CiAgICAgICAgICdXZWJLaXQ6OkFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSc6IFsnIkFwcFBy
aXZhY3lSZXBvcnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2VJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLAogICAgICAg
ICAnV2ViS2l0OjpDYWxsRG93bmxvYWREaWRTdGFydCc6IFsnIkRvd25sb2FkTWFuYWdlci5oIidd
LAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJzogWyciQ29udGVudFdv
cmxkU2hhcmVkLmgiJ10sCkBAIC04MTgsMTUgKzg2OSw3OSBAQCBkZWYgaGVhZGVyc19mb3JfdHlw
ZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uVG91Y2gnOiBbJyJHZXN0dXJlVHlw
ZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6VGFwSWRlbnRpZmllcic6IFsnIklkZW50aWZpZXJU
eXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpUZXh0Q2hlY2tlclJlcXVlc3RJRCc6IFsnIklk
ZW50aWZpZXJUeXBlcy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERl
c2NyaXB0b3InOiBbJyJXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwRW50cnknOiBbJyJXZWJHUFVCaW5kR3JvdXBFbnRyeS5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3In
OiBbJyJXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnknOiBbJyJXZWJHUFVCaW5kR3JvdXBMYXlv
dXRFbnRyeS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50Jzog
WyciV2ViR1BVQmxlbmRDb21wb25lbnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpC
bGVuZFN0YXRlJzogWyciV2ViR1BVQmxlbmRTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkJ1ZmZlckJpbmRpbmcnOiBbJyJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dCc6IFsnIldlYkdQVUJ1ZmZl
ckJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCdWZmZXJEZXNj
cmlwdG9yJzogWyciV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb24nOiBbJyJXZWJHUFVDYW52YXNDb25maWd1cmF0
aW9uLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29sb3InOiBbJyJXZWJHUFVDb2xv
ci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3RhdGUnOiBbJyJX
ZWJHUFVDb2xvclRhcmdldFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3InOiBbJyJXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcic6
IFsnIldlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZSc6IFsnIldlYkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcic6
IFsnIldlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzJzogWyciV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yJzogWyciV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQnOiBb
JyJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6Q29udmVydFRvQmFja2luZ0NvbnRleHQnOiBbJyJXZWJHUFVDb252ZXJ0VG9CYWNr
aW5nQ29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkRlcHRoU3RlbmNpbFN0
YXRlJzogWyciV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJzogWyciV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkVycm9yJzogWyciV2ViR1BVRXJyb3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCc6IFsnIldlYkdQVUV4dGVudDNELmgi
J10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dCc6IFsnIldlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJzogWyciV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkZy
YWdtZW50U3RhdGUnOiBbJyJXZWJHUFVGcmFnbWVudFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6SWRlbnRpZmllcic6IFsnIldlYkdQVUlkZW50aWZpZXIuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXInOiBbJyJXZWJHUFVJbWFnZUNvcHlC
dWZmZXIuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbElt
YWdlJzogWyciV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUnOiBbJyJXZWJHUFVJbWFnZUNvcHlUZXh0dXJl
LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCc6
IFsnIldlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpJbWFnZURhdGFMYXlvdXQnOiBbJyJXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlJzogWyciV2ViR1BVTXVs
dGlzYW1wbGVTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok9iamVjdERlc2Ny
aXB0b3JCYXNlJzogWyciV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpPcmlnaW4yRCc6IFsnIldlYkdQVU9yaWdpbjJELmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6T3JpZ2luM0QnOiBbJyJXZWJHUFVPcmlnaW4zRC5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3InOiBbJyJXZWJHUFVPdXRP
Zk1lbW9yeUVycm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSc6IFsnIldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3InOiBbJyJXZWJHUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpQ
cmltaXRpdmVTdGF0ZSc6IFsnIldlYkdQVVByaW1pdGl2ZVN0YXRlLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2UnOiBbJyJXZWJHUFVQcm9ncmFtbWFibGVT
dGFnZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvcic6
IFsnIldlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQnOiBbJyJX
ZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgiJ10sCisgICAgICAgICdXZWJLaXQ6Oldl
YkdQVTo6UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQnOiBbJyJXZWJHUFVSZW5kZXJQ
YXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6
OlJlbmRlclBhc3NEZXNjcmlwdG9yJzogWyciV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0JzogWyciV2ViR1BV
UmVuZGVyUGFzc0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZXMnOiBbJyJXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgi
J10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJzog
WyciV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJzogWyciV2ViR1BVUmVxdWVzdEFkYXB0ZXJP
cHRpb25zLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlv
dXQnOiBbJyJXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJzog
WyciV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGUnOiBbJyJXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Jzog
WyciV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMnOiBbJyJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJl
cy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyc6IFsnIldl
YkdQVVN1cHBvcnRlZExpbWl0cy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlRleHR1
cmVCaW5kaW5nTGF5b3V0JzogWyciV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvcic6IFsnIldlYkdQVVRleHR1
cmVEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdE
ZXNjcmlwdG9yJzogWyciV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yJzogWyciV2ViR1BVVmFsaWRhdGlvbkVy
cm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlJzogWyci
V2ViR1BVVmVydGV4QXR0cmlidXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVy
dGV4QnVmZmVyTGF5b3V0JzogWyciV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4U3RhdGUnOiBbJyJXZWJHUFVWZXJ0ZXhTdGF0ZS5o
IiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUvQ29va2ll
Lmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQnOiBbJzxXZWJD
b3JlL0VsZW1lbnRDb250ZXh0Lmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6VmlkZW9Q
bGF5YmFja1F1YWxpdHlNZXRyaWNzJzogWyc8V2ViQ29yZS9WaWRlb1BsYXliYWNrUXVhbGl0eU1l
dHJpY3MuaD4nXSwKKyAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3NhZ2VIYW5k
bGVyRGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLAogICAg
ICAgICAnc3RydWN0IFdlYktpdDo6V2ViVXNlclNjcmlwdERhdGEnOiBbJyJXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlVz
ZXJTdHlsZVNoZWV0RGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5o
IiddLAotICAgICAgICAnc3RydWN0IFdlYktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRh
JzogWyciV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICd3
ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8nOiBbJzx3ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRFbmNvZGVyLmg+JywgJzxXZWJDb3JlL0xpYldlYlJUQ0VudW1UcmFpdHMuaD4nXSwKLSAgICAg
ICAgJ1BsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhS
Lmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlJzogWyc8V2ViQ29yZS9Q
bGF0Zm9ybVNjcmVlbi5oPiddLAogICAgIH0KIAogICAgIGhlYWRlcnMgPSBbXQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
LmgKaW5kZXggMGUwZWJjNDQ3NjBkZTk3Mjc5OTBiYzk3MWJhMTMzODk0NjYyOGFlMy4uYmNjZTVi
OTM4NmQ4OWY3YzBhMTNjOGNhNTNkZDkzYmZlMjVkM2FkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCkBAIC0z
NSw2ICszNSwzMyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJpbmRHcm91
cERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdlYkdQVUlk
ZW50aWZpZXIgYmluZEdyb3VwTGF5b3V0OwogICAgIFZlY3RvcjxCaW5kR3JvdXBFbnRyeT4gZW50
cmllczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNv
bnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJp
bmRHcm91cExheW91dDsKKyAgICAgICAgZW5jb2RlciA8PCBlbnRyaWVzOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cERl
c2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAg
ICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0
RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gYmluZEdyb3VwTGF5b3V0OworICAg
ICAgICBkZWNvZGVyID4+IGJpbmRHcm91cExheW91dDsKKyAgICAgICAgaWYgKCFiaW5kR3JvdXBM
YXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEJpbmRHcm91cEVudHJ5Pj4gZW50cmllczsKKyAgICAgICAgZGVjb2Rl
ciA+PiBlbnRyaWVzOworICAgICAgICBpZiAoIWVudHJpZXMpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3Jp
cHRvckJhc2UpLCBXVEZNb3ZlKCpiaW5kR3JvdXBMYXlvdXQpLCBXVEZNb3ZlKCplbnRyaWVzKSB9
IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKaW5kZXgg
ZjM4ZGQ1MDY3NzY0OTIyNmM0ZDdhMDMwYzlkZTljY2JkNmRkNjYzMy4uZDJmNDlkNTA4NDM3ZGJj
OWRmYmFkN2JlZDg2MTEzMWFjN2Q0ZThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKQEAgLTQ0LDYgKzQ0LDUzIEBAIHN0cnVj
dCBCaW5kR3JvdXBFbnRyeSB7CiAgICAgQnVmZmVyQmluZGluZyBidWZmZXJCaW5kaW5nOwogICAg
IFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBCaW5kaW5nUmVzb3VyY2VUeXBlIHR5
cGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5kaW5nOworICAgICAg
ICBlbmNvZGVyIDw8IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGVuY29kZXIgPDwgaWRlbnRpZmll
cjsKKyAgICAgICAgZW5jb2RlciA8PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cEVudHJ5PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkluZGV4MzI+IGJpbmRpbmc7CisgICAgICAgIGRlY29kZXIgPj4gYmluZGluZzsKKyAgICAgICAg
aWYgKCFiaW5kaW5nKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmc+IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGRl
Y29kZXIgPj4gYnVmZmVyQmluZGluZzsKKyAgICAgICAgaWYgKCFidWZmZXJCaW5kaW5nKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdl
YkdQVUlkZW50aWZpZXI+IGlkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmll
cjsKKyAgICAgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPEJpbmRpbmdSZXNvdXJjZVR5cGU+IHR5cGU7
CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJp
bmRpbmcpLCBXVEZNb3ZlKCpidWZmZXJCaW5kaW5nKSwgV1RGTW92ZSgqaWRlbnRpZmllciksIFdU
Rk1vdmUoKnR5cGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBl
LAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6U2FtcGxlciwK
KyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OlRleHR1cmVWaWV3
LAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6QnVmZmVyQmlu
ZGluZywKKyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OkV4dGVy
bmFsVGV4dHVyZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvci5oCmluZGV4IDY4YmFiZWRiYjY1MzZkNGJkNDBiN2Q1M2I0YWQ5NDY1YjM3ZjY5
ZWIuLmI0ZjBjYjRjNjYyZWYzYWYyZGE1NTgyMDlmMmM3MDhhNTA5YzQ1NWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IuaApAQCAtMzMsNiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKIAogc3RydWN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZW50cmll
czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0
IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGVudHJp
ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8QmluZEdyb3Vw
TGF5b3V0RW50cnk+PiBlbnRyaWVzOworICAgICAgICBkZWNvZGVyID4+IGVudHJpZXM7CisgICAg
ICAgIGlmICghZW50cmllcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUo
KmVudHJpZXMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dEVudHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdy
b3VwTGF5b3V0RW50cnkuaAppbmRleCA0MDJhM2YwOTE5MWU4NThlNTRmYjNlY2E3NDZiOWQzODlk
M2JmOWYwLi5iODMwYTU5MTQ4OTZlNWRmNzI1MmZmNGQwYzYzMjA1YzU5N2RkYzFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5
b3V0RW50cnkuaApAQCAtNDUsNiArNDUsNTcgQEAgc3RydWN0IEJpbmRHcm91cExheW91dEVudHJ5
IHsKICAgICBzdGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiB0ZXh0dXJlOwogICAg
IHN0ZDo6b3B0aW9uYWw8U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0PiBzdG9yYWdlVGV4dHVy
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGV4dGVy
bmFsVGV4dHVyZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGJpbmRpbmc7
CisgICAgICAgIGVuY29kZXIgPDwgdmlzaWJpbGl0eTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZm
ZXI7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlcjsKKyAgICAgICAgZW5jb2RlciA8PCB0ZXh0
dXJlOworICAgICAgICBlbmNvZGVyIDw8IHN0b3JhZ2VUZXh0dXJlOworICAgICAgICBlbmNvZGVy
IDw8IGV4dGVybmFsVGV4dHVyZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bmRleDMyPiBiaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+IGJpbmRpbmc7CisgICAgICAgIGlm
ICghYmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFncz4gdmlzaWJpbGl0eTsK
KyAgICAgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgICAgICBpZiAoIXZpc2liaWxpdHkp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8c3RkOjpvcHRpb25hbDxCdWZmZXJCaW5kaW5nTGF5b3V0Pj4gYnVmZmVyOworICAgICAgICBk
ZWNvZGVyID4+IGJ1ZmZlcjsKKyAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxT
YW1wbGVyQmluZGluZ0xheW91dD4+IHNhbXBsZXI7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxl
cjsKKyAgICAgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8VGV4dHVyZUJpbmRpbmdM
YXlvdXQ+PiB0ZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAgICAgIGlm
ICghdGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4+
IHN0b3JhZ2VUZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHN0b3JhZ2VUZXh0dXJlOworICAg
ICAgICBpZiAoIXN0b3JhZ2VUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8RXh0ZXJuYWxUZXh0dXJl
QmluZGluZ0xheW91dD4+IGV4dGVybmFsVGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiBleHRl
cm5hbFRleHR1cmU7CisgICAgICAgIGlmICghZXh0ZXJuYWxUZXh0dXJlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJpbmRp
bmcpLCBXVEZNb3ZlKCp2aXNpYmlsaXR5KSwgV1RGTW92ZSgqYnVmZmVyKSwgV1RGTW92ZSgqc2Ft
cGxlciksIFdURk1vdmUoKnRleHR1cmUpLCBXVEZNb3ZlKCpzdG9yYWdlVGV4dHVyZSksIFdURk1v
dmUoKmV4dGVybmFsVGV4dHVyZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQmxlbmRDb21wb25lbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVC
bGVuZENvbXBvbmVudC5oCmluZGV4IDk0YWM1YTI0MjBiMjM4MzA2ZmQ1NTk2ZjU0ZjVjNjhiMmI3
NmJiMjIuLmVlYmY5M2U3NGIyYjcxYzVkNmVkNDZhMDc2ODEwNzk4YWZjZDA4ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCkBA
IC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3QgQmxlbmRDb21wb25lbnQgewogICAgIFBBTDo6V2ViR1BV
OjpCbGVuZE9wZXJhdGlvbiBvcGVyYXRpb247CiAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9y
IHNyY0ZhY3RvcjsKICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3IgZHN0RmFjdG9yOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3BlcmF0aW9uOworICAgICAgICBlbmNv
ZGVyIDw8IHNyY0ZhY3RvcjsKKyAgICAgICAgZW5jb2RlciA8PCBkc3RGYWN0b3I7CisgICAgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QmxlbmRD
b21wb25lbnQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb24+IG9wZXJhdGlvbjsKKyAgICAgICAg
ZGVjb2RlciA+PiBvcGVyYXRpb247CisgICAgICAgIGlmICghb3BlcmF0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpCbGVuZEZhY3Rvcj4gc3JjRmFjdG9yOworICAgICAgICBkZWNvZGVyID4+IHNyY0ZhY3Rv
cjsKKyAgICAgICAgaWYgKCFzcmNGYWN0b3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yPiBk
c3RGYWN0b3I7CisgICAgICAgIGRlY29kZXIgPj4gZHN0RmFjdG9yOworICAgICAgICBpZiAoIWRz
dEZhY3RvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpvcGVyYXRpb24pLCBXVEZNb3ZlKCpzcmNGYWN0b3IpLCBXVEZNb3Zl
KCpkc3RGYWN0b3IpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5k
U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgK
aW5kZXggYTQxZjUxN2JjMTJjOTE3YTkyYTJlZTE5YTY0MzgyM2I2NGFhMmZiZi4uOWU4NGJhY2U5
ZWE5OWIzMDVhMzY5MDYyZWViYTY1OWQ2MjllOGZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJsZW5kU3RhdGUgewogICAgIEJsZW5kQ29tcG9u
ZW50IGNvbG9yOwogICAgIEJsZW5kQ29tcG9uZW50IGFscGhhOworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgY29sb3I7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGE7CisgICAg
fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qmxl
bmRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPEJsZW5kQ29tcG9uZW50PiBjb2xvcjsKKyAgICAgICAgZGVjb2RlciA+PiBjb2xvcjsK
KyAgICAgICAgaWYgKCFjb2xvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxCbGVuZENvbXBvbmVudD4gYWxwaGE7CisgICAgICAgIGRl
Y29kZXIgPj4gYWxwaGE7CisgICAgICAgIGlmICghYWxwaGEpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29sb3IpLCBXVEZN
b3ZlKCphbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVy
QmluZGluZy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmcuaAppbmRleCBkNDU5ODFmOWJkMTg1MTRiNzQyOWJlYjEyZTM0MDM5YTU5NWFmODdhLi4zMTZi
NDE2OGExZDljNTEyMjg0ZGEzZWY2YTYyMGEyNzM3ODU4YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKQEAgLTM2LDYgKzM2LDMz
IEBAIHN0cnVjdCBCdWZmZXJCaW5kaW5nIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlcjsK
ICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldDsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTaXplNjQ+IHNpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBidWZmZXI7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8
IHNpemU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8QnVmZmVyQmluZGluZz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGJ1ZmZlcjsKKyAgICAgICAg
ZGVjb2RlciA+PiBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
aXplNjQ+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICgh
b2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4+IHNpemU7CisgICAg
ICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJ1ZmZlciks
IFdURk1vdmUoKm9mZnNldCksIFdURk1vdmUoKnNpemUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgKaW5kZXggZjFmMDE2NWM3MWRj
YmFiYzEzZjRlMjkyNTI1NmI2YzE2NGMxYmZlOC4uZjlkMTEwZTRiMGJiZTY1YjNlZjVhMjZkZGYx
Y2UzMmQ0NGJkZjJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCkBAIC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3Qg
QnVmZmVyQmluZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBl
IHR5cGU7CiAgICAgYm9vbCBoYXNEeW5hbWljT2Zmc2V0OwogICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgbWluQmluZGluZ1NpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB0
eXBlOworICAgICAgICBlbmNvZGVyIDw8IGhhc0R5bmFtaWNPZmZzZXQ7CisgICAgICAgIGVuY29k
ZXIgPDwgbWluQmluZGluZ1NpemU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QnVmZmVyQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpC
dWZmZXJCaW5kaW5nVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAg
ICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaGFzRHluYW1pY09mZnNldDsKKyAgICAgICAgZGVjb2RlciA+
PiBoYXNEeW5hbWljT2Zmc2V0OworICAgICAgICBpZiAoIWhhc0R5bmFtaWNPZmZzZXQpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlNpemU2ND4gbWluQmluZGluZ1NpemU7CisgICAgICAgIGRlY29kZXIgPj4gbWlu
QmluZGluZ1NpemU7CisgICAgICAgIGlmICghbWluQmluZGluZ1NpemUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdHlwZSks
IFdURk1vdmUoKmhhc0R5bmFtaWNPZmZzZXQpLCBXVEZNb3ZlKCptaW5CaW5kaW5nU2l6ZSkgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAppbmRl
eCA2YzdhMTYwZWFkOTQxY2MwM2I3NDRkOWEyNzQxYzhiYTI4MTdlOTVkLi45YzUzNDRhMjRiZjBk
ODlkNjFmNDhkMTFmNmY1Nzk0NWE4ZjAxYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKQEAgLTM1LDYgKzM1LDM5IEBA
IHN0cnVjdCBCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsK
ICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemU7CiAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlclVz
YWdlRmxhZ3MgdXNhZ2U7CiAgICAgYm9vbCBtYXBwZWRBdENyZWF0aW9uOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCB1c2FnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXBwZWRBdENyZWF0aW9uOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJ1ZmZl
ckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZl
clVzYWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBp
ZiAoIXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IG1hcHBlZEF0Q3JlYXRpb247CisgICAgICAgIGRlY29kZXIgPj4g
bWFwcGVkQXRDcmVhdGlvbjsKKyAgICAgICAgaWYgKCFtYXBwZWRBdENyZWF0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
Km9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqc2l6ZSksIFdURk1vdmUoKnVzYWdlKSwg
V1RGTW92ZSgqbWFwcGVkQXRDcmVhdGlvbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaAppbmRleCBiODc2N2YwYTFiMDU4N2VmZTgx
YzE5YTljNjE5MTMxOTkzZjA3OTlmLi44NGI0YjA5NzVhOGQ3MTk0OTQ4ODY1YWFlNzE3ZWVjZTE4
NjBiNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2Fu
dmFzQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDYW52YXNDb25maWd1cmF0aW9uLmgKQEAgLTQ3LDYgKzQ3LDUxIEBAIHN0cnVjdCBDYW52YXND
b25maWd1cmF0aW9uIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29s
b3JTcGFjZTsKICAgICBQQUw6OldlYkdQVTo6Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUgY29t
cG9zaXRpbmdBbHBoYU1vZGU7CiAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6ZTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGRldmljZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgdXNhZ2U7CisgICAgICAgIGVuY29kZXIg
PDwgY29sb3JTcGFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBjb21wb3NpdGluZ0FscGhhTW9kZTsK
KyAgICAgICAgZW5jb2RlciA8PCBzaXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhbnZhc0NvbmZpZ3VyYXRpb24+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVu
dGlmaWVyPiBkZXZpY2U7CisgICAgICAgIGRlY29kZXIgPj4gZGV2aWNlOworICAgICAgICBpZiAo
IWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gZm9ybWF0OworICAgICAgICBk
ZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVVzYWdlRmxh
Z3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBpZiAoIXVzYWdl
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOworICAgICAgICBpZiAoIWNvbG9yU3BhY2UpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlPiBjb21wb3NpdGluZ0FscGhhTW9k
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21wb3NpdGluZ0FscGhhTW9kZTsKKyAgICAgICAgaWYg
KCFjb21wb3NpdGluZ0FscGhhTW9kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEV4dGVudDNEPj4gc2l6ZTsK
KyAgICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZGV2
aWNlKSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2UpLCBXVEZNb3ZlKCpjb2xvclNw
YWNlKSwgV1RGTW92ZSgqY29tcG9zaXRpbmdBbHBoYU1vZGUpLCBXVEZNb3ZlKCpzaXplKSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKaW5kZXggMDc1M2NjNmUwNmRkOThjYzdjMjJi
NjE2ZGVkY2JmZmY3N2U0YmJkOS4uNGUwZjQzOWRmZjViYThhMjQ2MTViMGIzNzhkMTE0MWE4NThh
Nzk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKQEAgLTM2
LDYgKzM2LDM5IEBAIHN0cnVjdCBDb2xvckRpY3QgewogICAgIGRvdWJsZSBnOwogICAgIGRvdWJs
ZSBiOwogICAgIGRvdWJsZSBhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
cjsKKyAgICAgICAgZW5jb2RlciA8PCBnOworICAgICAgICBlbmNvZGVyIDw8IGI7CisgICAgICAg
IGVuY29kZXIgPDwgYTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxDb2xvckRpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHI7CisgICAgICAgIGRlY29kZXIgPj4g
cjsKKyAgICAgICAgaWYgKCFyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZzsKKyAgICAgICAgZGVjb2RlciA+PiBnOwor
ICAgICAgICBpZiAoIWcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBiOworICAgICAgICBkZWNvZGVyID4+IGI7CisgICAg
ICAgIGlmICghYikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxkb3VibGU+IGE7CisgICAgICAgIGRlY29kZXIgPj4gYTsKKyAgICAgICAg
aWYgKCFhKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKnIpLCBXVEZNb3ZlKCpnKSwgV1RGTW92ZSgqYiksIFdURk1vdmUoKmEp
IH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91
YmxlPiwgQ29sb3JEaWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oCmluZGV4IGZiZWU3ODE4NGFmM2YwOWY1YTlmOGI3Y2Zi
MGE3ZjdmNGM5YTNmYjcuLjJlMzAzYzQ3ZTA1MjFhMTI5NDQxNGIwNjljZmUyMzc5MmQzZTZmOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdl
dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFy
Z2V0U3RhdGUuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IENvbG9yVGFyZ2V0U3RhdGUgewog
CiAgICAgc3RkOjpvcHRpb25hbDxCbGVuZFN0YXRlPiBibGVuZDsKICAgICBQQUw6OldlYkdQVTo6
Q29sb3JXcml0ZUZsYWdzIHdyaXRlTWFzazsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBibGVuZDsKKyAgICAgICAgZW5jb2Rl
ciA8PCB3cml0ZU1hc2s7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Q29sb3JUYXJnZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAgICBpZiAoIWZv
cm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6Om9wdGlvbmFsPEJsZW5kU3RhdGU+PiBibGVuZDsKKyAgICAgICAgZGVjb2Rl
ciA+PiBibGVuZDsKKyAgICAgICAgaWYgKCFibGVuZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3JXcml0
ZUZsYWdzPiB3cml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gd3JpdGVNYXNrOworICAgICAg
ICBpZiAoIXdyaXRlTWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpibGVuZCksIFdURk1v
dmUoKndyaXRlTWFzaykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4IDZkYzYzYzNlZjRiNTY1NTFhNmQyNjNh
NmZiYTY4N2JkZjYxOTQ5OTYuLmFmYjYwODNjMDU0NTFmMjUzYzdkMmI1Y2I2YTRiZWI1ZWVmMmMz
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5k
QnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zMCw2ICszMCwyMCBAQAogbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIDogcHVi
bGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxD
b21tYW5kQnVmZmVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlw
dG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAg
ICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFz
ZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVu
Y29kZXJEZXNjcmlwdG9yLmgKaW5kZXggZjA3YTVmMDA3MzE5YWM5N2QxMWMwNTU4MTQ0NmMxMGU4
M2UzMDllNi4uMzNiZWIwOWU2ZDVlMDQ3MTZmZDNiOGRjNmFiNTBjOGU3ODYyYTVmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3IuaApAQCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CiAKIHN0cnVjdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbW1hbmRF
bmNvZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYg
KCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSkgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDhlYTRkYjU0YWMyMjhhYjg3YzNiOThmNDVkYjM4NzFlZmEwZTkyNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxh
dGlvbk1lc3NhZ2UuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdHJ1Y3QgQ29tcGlsYXRpb25N
ZXNzYWdlIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRp
b25NZXNzYWdlVHlwZSB0eXBlOworICAgIHVpbnQ2NF90IGxpbmVOdW07CisgICAgdWludDY0X3Qg
bGluZVBvczsKKyAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDY0X3QgbGVuZ3RoOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVzc2FnZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8IGxpbmVOdW07CisgICAgICAgIGVuY29kZXIg
PDwgbGluZVBvczsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29kZXIg
PDwgbGVuZ3RoOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPENvbXBpbGF0aW9uTWVzc2FnZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBtZXNzYWdlOworICAgICAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsK
KyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBsaW5lTnVtOworICAgICAgICBkZWNvZGVy
ID4+IGxpbmVOdW07CisgICAgICAgIGlmICghbGluZU51bSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGluZVBvczsK
KyAgICAgICAgZGVjb2RlciA+PiBsaW5lUG9zOworICAgICAgICBpZiAoIWxpbmVQb3MpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICgh
b2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBsZW5ndGg7CisgICAgICAgIGRlY29kZXIgPj4gbGVuZ3RoOwor
ICAgICAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCptZXNzYWdlKSwgV1RGTW92ZSgqdHlwZSksIFdU
Rk1vdmUoKmxpbmVOdW0pLCBXVEZNb3ZlKCpsaW5lUG9zKSwgV1RGTW92ZSgqb2Zmc2V0KSwgV1RG
TW92ZSgqbGVuZ3RoKSB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc0Rlc2NyaXB0b3IuaAppbmRleCA5NTdlNmU0NjMzYjc4NjVjYTA3MTYwNDdlYjdj
OTExOTg2ZTZiYTI4Li43YmIzZTMxOGViZWMzM2VjOGY3OGE4M2YxNmQ3NTVjM2QyMTQxY2Q5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1
dGVQYXNzRGVzY3JpcHRvci5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCiBzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERl
c2NyaXB0b3JCYXNlIHsKICAgICBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyB0aW1lc3RhbXBX
cml0ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxj
b25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB0
aW1lc3RhbXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJh
c2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2Ny
aXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGVzPiB0aW1lc3RhbXBXcml0ZXM7CisgICAgICAgIGRlY29kZXIgPj4g
dGltZXN0YW1wV3JpdGVzOworICAgICAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpv
YmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cFdyaXRlcy5oCmluZGV4IDFhMDZmOGYwMjUzY2YyNmZmZmYwY2RiMjQ1ZGMyMDZkNDg2MzM4OTUu
LjRmMjJkOWFhYjFkYjYyOGJmMzEzNjIyYzg0OThjNmE4NGFjMjdkM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRl
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlcy5oCkBAIC0zNyw2ICszNywzMyBAQCBzdHJ1Y3QgQ29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGlt
ZXN0YW1wTG9jYXRpb24gbG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBxdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVyeUluZGV4OworICAgICAgICBl
bmNvZGVyIDw8IGxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVu
dGlmaWVyPiBxdWVyeVNldDsKKyAgICAgICAgZGVjb2RlciA+PiBxdWVyeVNldDsKKyAgICAgICAg
aWYgKCFxdWVyeVNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBxdWVyeUluZGV4OworICAgICAg
ICBkZWNvZGVyID4+IHF1ZXJ5SW5kZXg7CisgICAgICAgIGlmICghcXVlcnlJbmRleCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247CisgICAgICAg
IGRlY29kZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcXVl
cnlTZXQpLCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0gfTsKKyAg
ICB9CiB9OwogCiB1c2luZyBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IGM5
MzMyNmE5ZTkzNzVkYjNiNTA4MDk5NjE2Y2MxMzY5MDZjMjkzM2IuLmNkZDY1ZDA5NWY2OGU1ZWNi
ZWI5ODdkM2FiMzNiMjhhMmNiNjQ2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaApAQCAt
MzIsNiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiAg
ICAgUHJvZ3JhbW1hYmxlU3RhZ2UgY29tcHV0ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UmPigqdGhp
cyk7CisgICAgICAgIGVuY29kZXIgPDwgY29tcHV0ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBwaXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIXBpcGVs
aW5lRGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IGNvbXB1dGU7CisgICAgICAg
IGRlY29kZXIgPj4gY29tcHV0ZTsKKyAgICAgICAgaWYgKCFjb21wdXRlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnBpcGVs
aW5lRGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb21wdXRlKSB9IH07CisgICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCmlu
ZGV4IDAyMTg4MjdiMzAxYWM2ZDM4YzZjNzI4ZDc4Y2UxOWE5YzI5OTVhYjQuLjU5NTQ1ZDYwNDY5
YWJlZTI1MzAyZjdjOTM0N2I4NDAyNTI3Y2NiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQu
aApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQ
VTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNvbnZlcnRD
b21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1
YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29k
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOCBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgY29uc3QgUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6
V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6
RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKaW5kZXggMmUyMTQ3NzNhNjVkYjRmNmM4
YWQyODIxYWM2MzZhMDBhNWJmZjY4MS4uYTU5N2RmMDk2MTM2ZGIzNDI4YzJjNjdkNTJlYzk2MWZm
YmNmNjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURl
cHRoU3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VURlcHRoU3RlbmNpbFN0YXRlLmgKQEAgLTQ4LDYgKzQ4LDc1IEBAIHN0cnVjdCBEZXB0aFN0ZW5j
aWxTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OkRlcHRoQmlhcyBkZXB0aEJpYXM7CiAgICAgZmxv
YXQgZGVwdGhCaWFzU2xvcGVTY2FsZTsKICAgICBmbG9hdCBkZXB0aEJpYXNDbGFtcDsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8
PCBkZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aENvbXBhcmU7Cisg
ICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbEZyb250OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5j
aWxCYWNrOworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkTWFzazsKKyAgICAgICAgZW5j
b2RlciA8PCBzdGVuY2lsV3JpdGVNYXNrOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoQmlhczsK
KyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAgICBlbmNvZGVy
IDw8IGRlcHRoQmlhc0NsYW1wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlm
ICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IGRlcHRoV3JpdGVFbmFibGVkOworICAgICAgICBkZWNvZGVyID4+
IGRlcHRoV3JpdGVFbmFibGVkOworICAgICAgICBpZiAoIWRlcHRoV3JpdGVFbmFibGVkKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24+IGRlcHRoQ29tcGFyZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBkZXB0aENvbXBhcmU7CisgICAgICAgIGlmICghZGVwdGhDb21wYXJlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0ZW5jaWxG
YWNlU3RhdGU+IHN0ZW5jaWxGcm9udDsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsRnJvbnQ7
CisgICAgICAgIGlmICghc3RlbmNpbEZyb250KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0ZW5jaWxGYWNlU3RhdGU+IHN0ZW5jaWxC
YWNrOworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxCYWNrOworICAgICAgICBpZiAoIXN0ZW5j
aWxCYWNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZT4+IHN0ZW5j
aWxSZWFkTWFzazsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE1hc2s7CisgICAgICAg
IGlmICghc3RlbmNpbFJlYWRNYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5j
aWxWYWx1ZT4+IHN0ZW5jaWxXcml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFdy
aXRlTWFzazsKKyAgICAgICAgaWYgKCFzdGVuY2lsV3JpdGVNYXNrKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpE
ZXB0aEJpYXM+IGRlcHRoQmlhczsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aEJpYXM7CisgICAg
ICAgIGlmICghZGVwdGhCaWFzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAg
ICBkZWNvZGVyID4+IGRlcHRoQmlhc1Nsb3BlU2NhbGU7CisgICAgICAgIGlmICghZGVwdGhCaWFz
U2xvcGVTY2FsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4gZGVwdGhCaWFzQ2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4g
ZGVwdGhCaWFzQ2xhbXA7CisgICAgICAgIGlmICghZGVwdGhCaWFzQ2xhbXApCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZm9y
bWF0KSwgV1RGTW92ZSgqZGVwdGhXcml0ZUVuYWJsZWQpLCBXVEZNb3ZlKCpkZXB0aENvbXBhcmUp
LCBXVEZNb3ZlKCpzdGVuY2lsRnJvbnQpLCBXVEZNb3ZlKCpzdGVuY2lsQmFjayksIFdURk1vdmUo
KnN0ZW5jaWxSZWFkTWFzayksIFdURk1vdmUoKnN0ZW5jaWxXcml0ZU1hc2spLCBXVEZNb3ZlKCpk
ZXB0aEJpYXMpLCBXVEZNb3ZlKCpkZXB0aEJpYXNTbG9wZVNjYWxlKSwgV1RGTW92ZSgqZGVwdGhC
aWFzQ2xhbXApIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURl
c2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNj
cmlwdG9yLmgKaW5kZXggODZhNGQ2OGZlZjcxNzNlNTVkNTYxM2JkNGE0Yjk1NmUwMzBmZTIyYi4u
NmEyNTIzNmRjODljNjY5ODkwNDc3ZWRkZDFkMjMzYTRiMmI0MjRjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCkBAIC0z
Nyw2ICszNywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IERldmljZURl
c2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxQQUw6
OldlYkdQVTo6RmVhdHVyZU5hbWU+IHJlcXVpcmVkRmVhdHVyZXM7CiAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciByZXF1aXJlZExpbWl0cy4KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMp
OworICAgICAgICBlbmNvZGVyIDw8IHJlcXVpcmVkRmVhdHVyZXM7CisgICAgfQorCisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RGV2aWNlRGVzY3JpcHRv
cj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFs
PE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVj
b2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlw
dG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPj4gcmVxdWlyZWRGZWF0
dXJlczsKKyAgICAgICAgZGVjb2RlciA+PiByZXF1aXJlZEZlYXR1cmVzOworICAgICAgICBpZiAo
IXJlcXVpcmVkRmVhdHVyZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3Zl
KCpyZXF1aXJlZEZlYXR1cmVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFcnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzJlZDJiZGViMjQ3YmMyYTk3NzI4OTlmN2JjMGE1OThkNjY0NTQ4ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldl
YkdQVU91dE9mTWVtb3J5RXJyb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVWYWxpZGF0aW9uRXJyb3Iu
aCIKKyNpbmNsdWRlIDx2YXJpYW50PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCit1
c2luZyBFcnJvciA9IHN0ZDo6dmFyaWFudDxPdXRPZk1lbW9yeUVycm9yLCBWYWxpZGF0aW9uRXJy
b3I+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAppbmRleCA0NzNjNGUxOThmNTM1NTI5MzZkZTgy
Yzk4MGY2ZGQwOWM0MWNiMzFlLi4xOTM4MzQyMDk0MmI4ZjA0ZjY0ZGI2NmY4YWI2NWZhYzVmNTdi
ODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50
M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaApA
QCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IEV4dGVudDNERGljdCB7CiAgICAgUEFMOjpXZWJHUFU6
OkludGVnZXJDb29yZGluYXRlIHdpZHRoOwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZSBoZWlnaHQ7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGRlcHRoT3JB
cnJheUxheWVyczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHdpZHRoOwor
ICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aE9yQXJy
YXlMYXllcnM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8RXh0ZW50M0REaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB3
aWR0aDsKKyAgICAgICAgZGVjb2RlciA+PiB3aWR0aDsKKyAgICAgICAgaWYgKCF3aWR0aCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGhlaWdodDsKKyAgICAgICAgZGVjb2RlciA+
PiBoZWlnaHQ7CisgICAgICAgIGlmICghaGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29v
cmRpbmF0ZT4gZGVwdGhPckFycmF5TGF5ZXJzOworICAgICAgICBkZWNvZGVyID4+IGRlcHRoT3JB
cnJheUxheWVyczsKKyAgICAgICAgaWYgKCFkZXB0aE9yQXJyYXlMYXllcnMpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqd2lk
dGgpLCBXVEZNb3ZlKCpoZWlnaHQpLCBXVEZNb3ZlKCpkZXB0aE9yQXJyYXlMYXllcnMpIH0gfTsK
KyAgICB9CiB9OwogCiB1c2luZyBFeHRlbnQzRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8UEFMOjpX
ZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgRXh0ZW50M0REaWN0PjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJl
QmluZGluZ0xheW91dC5oCmluZGV4IDUwZGFiZmEyNTE0NDQzYjMxZDU5N2RkYjZjMTJjYzU5MDYx
YjNkOGUuLjJkNWMyZmZkZGE4NGE2YTQ2MmE4ZDdjZDVkZDhhN2RhYzY3MmY3MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5k
aW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVy
bmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMjgsNiArMjgsMTQgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0IHsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsgfSB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3Iu
aAppbmRleCA2ZTgzMDFlM2UxZGUyOTUwYmUzMjA5NjMxNmFkZDY1YjZiNDIxMWYxLi45M2M3NDUx
MmU0MmU4NGZiNWYyMDZjNjcxYzY4MzY3ZWU0M2RkY2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yLmgKQEAgLTMyLDYgKzMyLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0
cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JC
YXNlIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9i
amVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yU3Bh
Y2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UHJl
ZGVmaW5lZENvbG9yU3BhY2U+IGNvbG9yU3BhY2U7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3JT
cGFjZTsKKyAgICAgICAgaWYgKCFjb2xvclNwYWNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JC
YXNlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUZyYWdtZW50U3RhdGUuaAppbmRleCBkZDRjYWIwODFkNWJiY2RiOTVhMjM4ZDQxYzJlYTUz
ZjhhNGMxM2U5Li45Zjk2ZWUxNmRjYjZjYTQ3YWE4MmNjMjg0NjY5M2U5NjZlMWNlZjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmgK
QEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBG
cmFnbWVudFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBWZWN0b3I8Q29s
b3JUYXJnZXRTdGF0ZT4gdGFyZ2V0czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGNvbnN0IFByb2dyYW1tYWJsZVN0YWdlJj4oKnRoaXMpOworICAgICAg
ICBlbmNvZGVyIDw8IHRhcmdldHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RnJhZ21lbnRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBw
cm9ncmFtbWFibGVTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBwcm9ncmFtbWFibGVTdGFnZTsK
KyAgICAgICAgaWYgKCFwcm9ncmFtbWFibGVTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29sb3JUYXJnZXRTdGF0
ZT4+IHRhcmdldHM7CisgICAgICAgIGRlY29kZXIgPj4gdGFyZ2V0czsKKyAgICAgICAgaWYgKCF0
YXJnZXRzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKnByb2dyYW1tYWJsZVN0YWdlKSwgV1RGTW92ZSgqdGFyZ2V0cykgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKaW5kZXgg
MDM1NGZjNTY2MTg2MDIwN2VhYzQ1NTRjMmJjNmQ2ZGI5MGQyNDA4My4uMTE4NjYwZTc3ZDY5NTY1
OGI4NzIyYjNlNDdlMmZhMmZmNWNlZTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaApAQCAtMzMsNiArMzMsMjcgQEAgbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUJ1ZmZlciA6IHB1Ymxp
YyBJbWFnZURhdGFMYXlvdXQgewogICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VEYXRh
TGF5b3V0Jj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlcjsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJbWFnZUNvcHlC
dWZmZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxJbWFnZURhdGFMYXlvdXQ+IGltYWdlRGF0YUxheW91dDsKKyAgICAgICAgZGVjb2RlciA+
PiBpbWFnZURhdGFMYXlvdXQ7CisgICAgICAgIGlmICghaW1hZ2VEYXRhTGF5b3V0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQ
VUlkZW50aWZpZXI+IGJ1ZmZlcjsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXI7CisgICAgICAg
IGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmltYWdlRGF0YUxheW91dCksIFdURk1vdmUoKmJ1ZmZlcikg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVy
bmFsSW1hZ2UuaAppbmRleCAwNzExMGRiZDM4MGRjNjU3ZDE4MzdhNDQ2ZGM3ZTBlZDQwNmMwZGNl
Li4xZTU1MjhiOWM1NGNjMWQ5N2RlZmZkYzE5MzJmMmVhMTEwOWE5Y2NiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5h
bEltYWdlLmgKQEAgLTMyLDggKzMyLDIzIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewog
CiBzdHJ1Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSB7Ci0gICAgLy8gc3RkOjp2YXJpYW50PFJl
ZlB0cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+IHNvdXJjZTsKKyAg
ICAvLyBGSVhNRTogSGFuZGxlIHRoZSBzb3VyY2UuCiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4y
RD4gb3JpZ2luOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3JpZ2luOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEltYWdlQ29weUV4dGVybmFsSW1hZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPE9yaWdpbjJEPj4gb3JpZ2luOwor
ICAgICAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
b3JpZ2luKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZS5oCmluZGV4IGJkNWM3MDRiMDRjZjQyNWIyMzI3MWJmMzAwZjcwNzQ3ZDVkOTI3ODguLjhh
MjMwNmE4NDQzMWZjZDU4MDExZjVlYzg4ZmE3YWEwYzQ4OTk3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaApAQCAtMzks
NiArMzksMzkgQEAgc3RydWN0IEltYWdlQ29weVRleHR1cmUgewogICAgIFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZSBtaXBMZXZlbDsKICAgICBzdGQ6Om9wdGlvbmFsPE9yaWdpbjNEPiBv
cmlnaW47CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QgYXNwZWN0OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBt
aXBMZXZlbDsKKyAgICAgICAgZW5jb2RlciA8PCBvcmlnaW47CisgICAgICAgIGVuY29kZXIgPDwg
YXNwZWN0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEltYWdlQ29weVRleHR1cmU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiB0ZXh0dXJlOworICAg
ICAgICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAgICAgIGlmICghdGV4dHVyZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IG1pcExldmVsOworICAgICAgICBkZWNvZGVyID4+IG1p
cExldmVsOworICAgICAgICBpZiAoIW1pcExldmVsKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8T3JpZ2luM0Q+
PiBvcmlnaW47CisgICAgICAgIGRlY29kZXIgPj4gb3JpZ2luOworICAgICAgICBpZiAoIW9yaWdp
bikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdD4gYXNwZWN0OworICAgICAgICBkZWNvZGVy
ID4+IGFzcGVjdDsKKyAgICAgICAgaWYgKCFhc3BlY3QpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdGV4dHVyZSksIFdURk1v
dmUoKm1pcExldmVsKSwgV1RGTW92ZSgqb3JpZ2luKSwgV1RGTW92ZSgqYXNwZWN0KSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5oCmluZGV4IDU1NWFmMGUxYWJlZjYzNTI0YTc3YTA1ODc0MGNlZjE0NmJhZTIwYmQuLjg0OWJj
NGU4NjFjMzM2M2E2OTA5M2VjZmY5MWIwZjVkNTIwZTQ2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
aApAQCAtMzMsNiArMzMsMzMgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBJ
bWFnZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGljIEltYWdlQ29weVRleHR1cmUgewogICAgIFBB
TDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlOwogICAgIGJvb2wgcHJl
bXVsdGlwbGllZEFscGhhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8Y29uc3QgSW1hZ2VDb3B5VGV4dHVyZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBjb2xvclNwYWNlOworICAgICAgICBlbmNvZGVyIDw8IHByZW11bHRpcGxpZWRBbHBoYTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5VGV4dHVyZT4gaW1hZ2VDb3B5VGV4dHVy
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBpbWFnZUNvcHlUZXh0dXJlOworICAgICAgICBpZiAoIWlt
YWdlQ29weVRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlPiBjb2xv
clNwYWNlOworICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7CisgICAgICAgIGlmICghY29s
b3JTcGFjZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAgICAgIGRlY29kZXIgPj4g
cHJlbXVsdGlwbGllZEFscGhhOworICAgICAgICBpZiAoIXByZW11bHRpcGxpZWRBbHBoYSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCppbWFnZUNvcHlUZXh0dXJlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSksIFdURk1vdmUoKnBy
ZW11bHRpcGxpZWRBbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
SW1hZ2VEYXRhTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VEYXRhTGF5b3V0LmgKaW5kZXggMWU1ZGQwYTQ2NzE2ZDg4ZDBjZDdhMmE2Y2FhNzA5NzNkZmJm
Yjk3NC4uY2U0Y2UzOTE0NzMwM2ZlNzBlMjdmNjlhYWJlMGNlNWMxYTE1N2IzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaApA
QCAtMzQsNiArMzQsMzMgQEAgc3RydWN0IEltYWdlRGF0YUxheW91dCB7CiAgICAgUEFMOjpXZWJH
UFU6OlNpemU2NCBvZmZzZXQ7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMy
PiBieXRlc1BlclJvdzsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHJv
d3NQZXJJbWFnZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9mZnNldDsK
KyAgICAgICAgZW5jb2RlciA8PCBieXRlc1BlclJvdzsKKyAgICAgICAgZW5jb2RlciA8PCByb3dz
UGVySW1hZ2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8SW1hZ2VEYXRhTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0Owor
ICAgICAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gYnl0ZXNQZXJSb3c7CisgICAgICAgIGRlY29k
ZXIgPj4gYnl0ZXNQZXJSb3c7CisgICAgICAgIGlmICghYnl0ZXNQZXJSb3cpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gcm93c1BlckltYWdlOworICAgICAgICBkZWNvZGVy
ID4+IHJvd3NQZXJJbWFnZTsKKyAgICAgICAgaWYgKCFyb3dzUGVySW1hZ2UpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2Zm
c2V0KSwgV1RGTW92ZSgqYnl0ZXNQZXJSb3cpLCBXVEZNb3ZlKCpyb3dzUGVySW1hZ2UpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKaW5kZXgg
YmQxMWJlMmVjMWVjMWIyZTQ3OTFjOWVkODMyYzlhYzAzMDNiMTc4YS4uOGRlNWQ1OGQ5ODMxOWY4
ZDkxODg4ODZjNDQxMDA5NjAxYzNmOTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oCkBAIC0zMyw2ICszMywzMyBAQCBz
dHJ1Y3QgTXVsdGlzYW1wbGVTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBjb3VudDsK
ICAgICBQQUw6OldlYkdQVTo6U2FtcGxlTWFzayBtYXNrOwogICAgIGJvb2wgYWxwaGFUb0NvdmVy
YWdlRW5hYmxlZDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvdW50Owor
ICAgICAgICBlbmNvZGVyIDw8IG1hc2s7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGFUb0NvdmVy
YWdlRW5hYmxlZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gY291bnQ7
CisgICAgICAgIGRlY29kZXIgPj4gY291bnQ7CisgICAgICAgIGlmICghY291bnQpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNhbXBsZU1hc2s+IG1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gbWFzazsKKyAgICAg
ICAgaWYgKCFtYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAgICAgIGRl
Y29kZXIgPj4gYWxwaGFUb0NvdmVyYWdlRW5hYmxlZDsKKyAgICAgICAgaWYgKCFhbHBoYVRvQ292
ZXJhZ2VFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqbWFzayksIFdURk1vdmUoKmFs
cGhhVG9Db3ZlcmFnZUVuYWJsZWQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAppbmRleCAyMzg3OTAwYTQ2MTRkZjhmMGNjYmRl
Nzg2OTc3YjkyMDdhOTUxZTY2Li40ZmNiOWY1NTg3NzZmNDNjMTY4YmU0MGUyNzIxNmI0ZTQ5MzBh
MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIAogc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBTdHJpbmcg
bGFiZWw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBsYWJlbDsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPYmpl
Y3REZXNjcmlwdG9yQmFzZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbGFiZWw7CisgICAgICAgIGRlY29kZXIgPj4gbGFiZWw7
CisgICAgICAgIGlmICghbGFiZWwpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbGFiZWwpIH0gfTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVT3JpZ2luMkQuaAppbmRleCBmZGM2NjcxMDMwN2ViNDRkZDkxYmYxZTg3YzQ2NzRm
MTg0YzA2MDgyLi5kZjFmZmZkNTc4NDM5NTIzYmRjNzIxMTQzMzI3YjBjNmZlM2E3NzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaApAQCAtMzQsNiAr
MzQsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBPcmlnaW4yRERpY3Qg
ewogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4OwogICAgIFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZSB5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgeDsKKyAgICAgICAgZW5jb2RlciA8PCB5OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9yaWdpbjJERGljdD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZT4geDsKKyAgICAgICAgZGVjb2RlciA+PiB4OworICAgICAgICBpZiAo
IXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB5OworICAgICAgICBkZWNvZGVy
ID4+IHk7CisgICAgICAgIGlmICgheSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgqeSkgfSB9OworICAg
IH0KIH07CiAKIHVzaW5nIE9yaWdpbjJEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxQQUw6OldlYkdQ
VTo6SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4yRERpY3Q+OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaAppbmRleCAzZTQ3NDI1MzVjODk0NjQ4MjM5MGUx
ZThmNDRjZmIwZDBhNmFmYzhiLi5jZjc0NWE0MjA3NGFjYjIwZmU3NTE0NmMwZTk0NTMwZTY3NGM4
ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2lu
M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaApA
QCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IE9yaWdpbjNERGljdCB7CiAgICAgUEFMOjpXZWJHUFU6
OkludGVnZXJDb29yZGluYXRlIHg7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRl
IHk7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHo7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCB4OworICAgICAgICBlbmNvZGVyIDw8IHk7CisgICAgICAg
IGVuY29kZXIgPDwgejsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxPcmlnaW4zRERpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5h
dGU+IHg7CisgICAgICAgIGRlY29kZXIgPj4geDsKKyAgICAgICAgaWYgKCF4KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4geTsKKyAgICAgICAgZGVjb2RlciA+PiB5OworICAgICAg
ICBpZiAoIXkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB6OworICAgICAgICBk
ZWNvZGVyID4+IHo7CisgICAgICAgIGlmICgheikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgqeSksIFdU
Rk1vdmUoKnopIH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBPcmlnaW4zRCA9IHN0ZDo6dmFyaWFu
dDxWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luM0REaWN0PjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9y
eUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlF
cnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjNjkzNTc1NzFhZjE3ZWY5ZTdmNzY0MjM4NzdmZjM0ODRhYTY2
NWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T3V0T2ZNZW1vcnlFcnJvci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0IE91dE9mTWVtb3J5
RXJyb3IgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE91dE9mTWVtb3J5RXJyb3I+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgeyB9IH07CisgICAgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCmluZGV4IGUy
NDkyYWUwOThjZWRmODhjZWJjZGU5YTQwMzg4MTA4YmRhNzY5YjMuLjVjNGI3MDc5MDA1MWNmYzFm
N2M1NTk1MTY2OGI5ZjQ1YjA1NWUyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaApAQCAtMzIsNiAr
MzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IFBpcGVsaW5lRGVz
Y3JpcHRvckJhc2UgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdlYkdQVUlk
ZW50aWZpZXIgbGF5b3V0OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVu
Y29kZXIgPDwgbGF5b3V0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFBpcGVsaW5lRGVzY3JpcHRvckJhc2U+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9y
QmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BV
SWRlbnRpZmllcj4gbGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IGxheW91dDsKKyAgICAgICAg
aWYgKCFsYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpsYXlv
dXQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvci5oCmluZGV4IDY0MTczMGViYTY5OWQ3YmUyZTkwZDFjMDRkYzkyZTEy
N2RlMTI3YmYuLjgwYTIwMTdmYmNmOWQ4NGVlMzQwMjQ5N2E2Y2JiNDc5ODZmMDU3N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CiAKIHN0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiBiaW5kR3Jv
dXBMYXlvdXRzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIg
PDwgYmluZEdyb3VwTGF5b3V0czsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNj
cmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+PiBiaW5kR3JvdXBMYXlvdXRzOworICAgICAgICBkZWNv
ZGVyID4+IGJpbmRHcm91cExheW91dHM7CisgICAgICAgIGlmICghYmluZEdyb3VwTGF5b3V0cykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBX
VEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmJpbmRHcm91cExheW91dHMp
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAppbmRl
eCBiODY4NzViYjUxZWY0YzkzNzJkOGYyNWQyYWIzMzU5MjYxNWI3NGIzLi5kMTgyMzMyMjNkOTcw
YThmMDk5MDYyNTg3ODExNWFhNDc1NGI0ODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaApAQCAtNDIsNiArNDIsNDUgQEAgc3Ry
dWN0IFByaW1pdGl2ZVN0YXRlIHsKIAogICAgIC8vIFJlcXVpcmVzICJkZXB0aC1jbGlwLWNvbnRy
b2wiIGZlYXR1cmUuCiAgICAgYm9vbCB1bmNsaXBwZWREZXB0aDsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgewor
ICAgICAgICBlbmNvZGVyIDw8IHRvcG9sb2d5OworICAgICAgICBlbmNvZGVyIDw8IHN0cmlwSW5k
ZXhGb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgZnJvbnRGYWNlOworICAgICAgICBlbmNvZGVy
IDw8IGN1bGxNb2RlOworICAgICAgICBlbmNvZGVyIDw8IHVuY2xpcHBlZERlcHRoOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByaW1p
dGl2ZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB0b3BvbG9neTsKKyAgICAg
ICAgZGVjb2RlciA+PiB0b3BvbG9neTsKKyAgICAgICAgaWYgKCF0b3BvbG9neSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4+IHN0cmlwSW5kZXhGb3JtYXQ7CisgICAg
ICAgIGRlY29kZXIgPj4gc3RyaXBJbmRleEZvcm1hdDsKKyAgICAgICAgaWYgKCFzdHJpcEluZGV4
Rm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGcm9udEZhY2U+IGZyb250RmFjZTsKKyAgICAgICAgZGVj
b2RlciA+PiBmcm9udEZhY2U7CisgICAgICAgIGlmICghZnJvbnRGYWNlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpDdWxsTW9kZT4gY3VsbE1vZGU7CisgICAgICAgIGRlY29kZXIgPj4gY3VsbE1vZGU7CisgICAg
ICAgIGlmICghY3VsbE1vZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAgIGRlY29k
ZXIgPj4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAgIGlmICghdW5jbGlwcGVkRGVwdGgpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqdG9wb2xvZ3kpLCBXVEZNb3ZlKCpzdHJpcEluZGV4Rm9ybWF0KSwgV1RGTW92ZSgqZnJvbnRG
YWNlKSwgV1RGTW92ZSgqY3VsbE1vZGUpLCBXVEZNb3ZlKCp1bmNsaXBwZWREZXB0aCkgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCmluZGV4
IGM1YjQxNjgwNmE5Y2ZjY2ZkYTJmMGYwYmQ2MjM3NjIzMjY0ODIyNzAuLmUxZjBhZTBkNjlmMjli
YjlmZjc4MmVlZDYyZDM2ZDM4NTdjMTlmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCkBAIC0zOCw2ICszOCwzMyBA
QCBzdHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFdlYkdQVUlkZW50aWZpZXIgbW9kdWxl
OwogICAgIFN0cmluZyBlbnRyeVBvaW50OwogICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgZW5jb2RlciA8PCBtb2R1bGU7CisgICAgICAgIGVuY29kZXIgPDwgZW50cnlQb2ludDsK
KyAgICAgICAgZW5jb2RlciA8PCBjb25zdGFudHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJ
ZGVudGlmaWVyPiBtb2R1bGU7CisgICAgICAgIGRlY29kZXIgPj4gbW9kdWxlOworICAgICAgICBp
ZiAoIW1vZHVsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGVudHJ5UG9pbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZW50
cnlQb2ludDsKKyAgICAgICAgaWYgKCFlbnRyeVBvaW50KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBQaXBlbGluZUNvbnN0YW50VmFsdWU+Pj4gY29uc3RhbnRzOworICAgICAgICBkZWNv
ZGVyID4+IGNvbnN0YW50czsKKyAgICAgICAgaWYgKCFjb25zdGFudHMpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbW9kdWxl
KSwgV1RGTW92ZSgqZW50cnlQb2ludCksIFdURk1vdmUoKmNvbnN0YW50cykgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKaW5kZXggY2Q0
NWI2NjEwYTdjMDg3NTVjYmVhNTQyYWViMTBiNjAyODg1NzMyMi4uYmUxMTJkOTI1NjY1ZGJhNGEw
MjNhZjQ3ZWVkOWY4MjRhYjkzYjljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaApAQCAtMzcsNiArMzcsMzkgQEAg
c3RydWN0IFF1ZXJ5U2V0RGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7
CiAgICAgUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZSB0eXBlOwogICAgIFBBTDo6V2ViR1BVOjpTaXpl
MzIgY291bnQ7CiAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU+
IHBpcGVsaW5lU3RhdGlzdGljczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAg
ICBlbmNvZGVyIDw8IHR5cGU7CisgICAgICAgIGVuY29kZXIgPDwgY291bnQ7CisgICAgICAgIGVu
Y29kZXIgPDwgcGlwZWxpbmVTdGF0aXN0aWNzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFF1ZXJ5U2V0RGVzY3JpcHRvcj4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERl
c2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBv
YmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6UXVlcnlUeXBlPiB0eXBlOworICAgICAgICBkZWNvZGVyID4+IHR5cGU7
CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBjb3VudDsKKyAgICAg
ICAgZGVjb2RlciA+PiBjb3VudDsKKyAgICAgICAgaWYgKCFjb3VudCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpX
ZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZT4+IHBpcGVsaW5lU3RhdGlzdGljczsKKyAgICAg
ICAgZGVjb2RlciA+PiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAgIGlmICghcGlwZWxpbmVT
dGF0aXN0aWNzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqdHlwZSks
IFdURk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqcGlwZWxpbmVTdGF0aXN0aWNzKSB9IH07CisgICAg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5o
CmluZGV4IDA4MWJhNjRiMGUxZDkyYTRiOTA3MDdmZTc0MmFlNzEyYzVkNDY0YjMuLmMwOTYyODA3
NjQxYmY5Y2E0MDFkODEyYmEyMDAzMWIyZWE5MDBhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaApA
QCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBS
ZW5kZXJCdW5kbGVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVz
Y3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9i
amVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKaW5k
ZXggNTQxNzkxOWNiZDdhYjI1YmU4YmQ4ZWMxOGRjMDNjMGI1ZDU3MTljYy4uZTI5Y2Q1NGI5NWNh
NDBhYzBhZDhiZTU5ZTc0ODMyZDJkZThkYjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmgKQEAgLTMyLDYgKzMyLDMzIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBz
dHJ1Y3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgUmVuZGVyUGFzc0xh
eW91dCB7CiAgICAgYm9vbCBkZXB0aFJlYWRPbmx5OwogICAgIGJvb2wgc3RlbmNpbFJlYWRPbmx5
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyUGFzc0xheW91dCY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFJlYWRP
bmx5OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkT25seTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVF
bmNvZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NMYXlvdXQ+IHJlbmRlclBhc3NMYXlvdXQ7CisgICAg
ICAgIGRlY29kZXIgPj4gcmVuZGVyUGFzc0xheW91dDsKKyAgICAgICAgaWYgKCFyZW5kZXJQYXNz
TGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhS
ZWFkT25seTsKKyAgICAgICAgaWYgKCFkZXB0aFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN0ZW5jaWxSZWFk
T25seTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE9ubHk7CisgICAgICAgIGlmICgh
c3RlbmNpbFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKnJlbmRlclBhc3NMYXlvdXQpLCBXVEZNb3ZlKCpkZXB0
aFJlYWRPbmx5KSwgV1RGTW92ZSgqc3RlbmNpbFJlYWRPbmx5KSB9IH07CisgICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCmlu
ZGV4IGUwZjNjODkzYjFjYmE3MTMwOGY3OGM4Yzc2MjUyMThkNGIzMjcwMTMuLmIwZDg5MjdlZjJi
YThhMzBiOWVhNmI2ZDVkZjQ3ZTE0ODY0ZWM3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQu
aApAQCAtNDEsNiArNDEsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQgewog
CiAgICAgc3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxkb3VibGU+LCBD
b2xvckRpY3Q+IGxvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBzdG9yZU9wOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdmlldzsKKyAgICAgICAgZW5jb2Rl
ciA8PCByZXNvbHZlVGFyZ2V0OworICAgICAgICBlbmNvZGVyIDw8IGxvYWRWYWx1ZTsKKyAgICAg
ICAgZW5jb2RlciA8PCBzdG9yZU9wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJ
ZGVudGlmaWVyPiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAgIGlmICgh
dmlldykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiByZXNvbHZlVGFyZ2V0OworICAgICAgICBkZWNvZGVy
ID4+IHJlc29sdmVUYXJnZXQ7CisgICAgICAgIGlmICghcmVzb2x2ZVRhcmdldCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZh
cmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIENvbG9yRGljdD4+IGxv
YWRWYWx1ZTsKKyAgICAgICAgZGVjb2RlciA+PiBsb2FkVmFsdWU7CisgICAgICAgIGlmICghbG9h
ZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdG9yZU9wPiBzdG9yZU9wOworICAgICAgICBkZWNvZGVy
ID4+IHN0b3JlT3A7CisgICAgICAgIGlmICghc3RvcmVPcCkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp2aWV3KSwgV1RGTW92
ZSgqcmVzb2x2ZVRhcmdldCksIFdURk1vdmUoKmxvYWRWYWx1ZSksIFdURk1vdmUoKnN0b3JlT3Ap
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0
ZW5jaWxBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAppbmRleCA2OGE0ODRiMDMzZDIxNTIxYmRk
MzYzZmZiYjcwZGEzZjhmMzk4ZGZiLi5lODJlZDZjODFlOGFjYTc4NWM4MDU4YzAzMjQyNmVlNWYw
YzJiYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaApAQCAtNDQs
NiArNDQsNTcgQEAgc3RydWN0IFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50IHsKICAg
ICBzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgUEFMOjpXZWJHUFU6OlN0ZW5jaWxW
YWx1ZT4gc3RlbmNpbExvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBzdGVuY2ls
U3RvcmVPcDsKICAgICBib29sIHN0ZW5jaWxSZWFkT25seTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHZpZXc7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhMb2FkVmFsdWU7
CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdG9yZU9wOworICAgICAgICBlbmNvZGVyIDw8IGRl
cHRoUmVhZE9ubHk7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbExvYWRWYWx1ZTsKKyAgICAg
ICAgZW5jb2RlciA8PCBzdGVuY2lsU3RvcmVPcDsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2ls
UmVhZE9ubHk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlm
aWVyPiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAgIGlmICghdmlldykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+PiBkZXB0aExvYWRWYWx1
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aExvYWRWYWx1ZTsKKyAgICAgICAgaWYgKCFkZXB0
aExvYWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gZGVwdGhTdG9yZU9wOworICAgICAg
ICBkZWNvZGVyID4+IGRlcHRoU3RvcmVPcDsKKyAgICAgICAgaWYgKCFkZXB0aFN0b3JlT3ApCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gZGVwdGhSZWFkT25seTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFJlYWRPbmx5Owor
ICAgICAgICBpZiAoIWRlcHRoUmVhZE9ubHkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpM
b2FkT3AsIFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+PiBzdGVuY2lsTG9hZFZhbHVlOworICAg
ICAgICBkZWNvZGVyID4+IHN0ZW5jaWxMb2FkVmFsdWU7CisgICAgICAgIGlmICghc3RlbmNpbExv
YWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gc3RlbmNpbFN0b3JlT3A7CisgICAgICAg
IGRlY29kZXIgPj4gc3RlbmNpbFN0b3JlT3A7CisgICAgICAgIGlmICghc3RlbmNpbFN0b3JlT3Ap
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gc3RlbmNpbFJlYWRPbmx5OworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxSZWFk
T25seTsKKyAgICAgICAgaWYgKCFzdGVuY2lsUmVhZE9ubHkpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdmlldyksIFdURk1v
dmUoKmRlcHRoTG9hZFZhbHVlKSwgV1RGTW92ZSgqZGVwdGhTdG9yZU9wKSwgV1RGTW92ZSgqZGVw
dGhSZWFkT25seSksIFdURk1vdmUoKnN0ZW5jaWxMb2FkVmFsdWUpLCBXVEZNb3ZlKCpzdGVuY2ls
U3RvcmVPcCksIFdURk1vdmUoKnN0ZW5jaWxSZWFkT25seSkgfSB9OworICAgIH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCmluZGV4IDg3ZTgxMGEy
YjVlNzNmNTdhYjlkOTBmYjNjNzJiZDFlN2FkMjE3YjQuLmJhNGNlZTIxMGNhMDBiZWI5ZThiODc3
ZmY3OTcyNmM0NWZiZDgxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCkBAIC00MCw2ICs0MCw0NSBAQCBz
dHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ug
ewogICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IGRl
cHRoU3RlbmNpbEF0dGFjaG1lbnQ7CiAgICAgV2ViR1BVSWRlbnRpZmllciBvY2NsdXNpb25RdWVy
eVNldDsKICAgICBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVzdGFtcFdyaXRlczsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVj
dERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yQXR0YWNo
bWVudHM7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdGVuY2lsQXR0YWNobWVudDsKKyAgICAg
ICAgZW5jb2RlciA8PCBvY2NsdXNpb25RdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1l
c3RhbXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0Rlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4g
b2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnQ+PiBjb2xvckF0dGFjaG1lbnRzOworICAgICAgICBkZWNvZGVy
ID4+IGNvbG9yQXR0YWNobWVudHM7CisgICAgICAgIGlmICghY29sb3JBdHRhY2htZW50cykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxz
dGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Pj4gZGVwdGhTdGVu
Y2lsQXR0YWNobWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFN0ZW5jaWxBdHRhY2htZW50
OworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmll
cj4gb2NjbHVzaW9uUXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2NjbHVzaW9uUXVlcnlT
ZXQ7CisgICAgICAgIGlmICghb2NjbHVzaW9uUXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1RpbWVzdGFt
cFdyaXRlcz4gdGltZXN0YW1wV3JpdGVzOworICAgICAgICBkZWNvZGVyID4+IHRpbWVzdGFtcFdy
aXRlczsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZXMpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3Jp
cHRvckJhc2UpLCBXVEZNb3ZlKCpjb2xvckF0dGFjaG1lbnRzKSwgV1RGTW92ZSgqZGVwdGhTdGVu
Y2lsQXR0YWNobWVudCksIFdURk1vdmUoKm9jY2x1c2lvblF1ZXJ5U2V0KSwgV1RGTW92ZSgqdGlt
ZXN0YW1wV3JpdGVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0xheW91dC5oCmluZGV4IGExNzJlZTI1Y2VhMTVlZGU3M2M1NGEzN2ZhZjc1Yzc3YzU4MjQ4
ZDEuLjRlZTMxZWUzNmFjYmU5Y2M3ZDRmOGJhMGQ1YjYyZGIzN2E3MTQzOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaApA
QCAtMzcsNiArMzcsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NMYXlvdXQgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4g
Y29sb3JGb3JtYXRzOwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ+IGRlcHRoU3RlbmNpbEZvcm1hdDsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIHNhbXBsZUNv
dW50OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29u
c3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgY29s
b3JGb3JtYXRzOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbEZvcm1hdDsKKyAgICAg
ICAgZW5jb2RlciA8PCBzYW1wbGVDb3VudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVj
dERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4+IGNvbG9yRm9ybWF0czsKKyAgICAgICAg
ZGVjb2RlciA+PiBjb2xvckZvcm1hdHM7CisgICAgICAgIGlmICghY29sb3JGb3JtYXRzKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+PiBkZXB0aFN0ZW5jaWxGb3Jt
YXQ7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhTdGVuY2lsRm9ybWF0OworICAgICAgICBpZiAo
IWRlcHRoU3RlbmNpbEZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBzYW1wbGVDb3VudDsK
KyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3VudDsKKyAgICAgICAgaWYgKCFzYW1wbGVDb3Vu
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmNvbG9yRm9ybWF0cyks
IFdURk1vdmUoKmRlcHRoU3RlbmNpbEZvcm1hdCksIFdURk1vdmUoKnNhbXBsZUNvdW50KSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlcy5oCmluZGV4IDhiMWViYTc0NjVmMTc2NTlmODBjOGExMjFlMmExZWY4ZWNhMTU5
ZDQuLjhiOTI2M2E3YzQ4MGQwODMxZjU0NDk5NmZlZTExYjI3MDRlNGVhZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZXMuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IFJlbmRlclBhc3NUaW1l
c3RhbXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1l
c3RhbXBMb2NhdGlvbiBsb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IHF1ZXJ5U2V0OworICAgICAgICBlbmNvZGVyIDw8IHF1ZXJ5SW5kZXg7CisgICAgICAgIGVu
Y29kZXIgPDwgbG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRp
Zmllcj4gcXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gcXVlcnlTZXQ7CisgICAgICAgIGlm
ICghcXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gcXVlcnlJbmRleDsKKyAgICAgICAg
ZGVjb2RlciA+PiBxdWVyeUluZGV4OworICAgICAgICBpZiAoIXF1ZXJ5SW5kZXgpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247CisgICAgICAgIGRl
Y29kZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcXVlcnlT
ZXQpLCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0gfTsKKyAgICB9
CiB9OwogCiB1c2luZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9yPFJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggOWEyNzFjNzNk
NTM1MTgzYjA4NjE2YzNiNjcyODYyODUzZmQ2ZmM4ZC4uNmMyZWY3MzA5MmFhMjRjYWYzZDU5NDE3
YjRjYjA2MWE5OTJlZjEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtNDEsNiArNDEs
NTEgQEAgc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBlbGluZURl
c2NyaXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPiBkZXB0
aFN0ZW5jaWw7CiAgICAgc3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBtdWx0aXNhbXBs
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEZyYWdtZW50U3RhdGU+IGZyYWdtZW50OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB2ZXJ0ZXg7CisgICAgICAg
IGVuY29kZXIgPDwgcHJpbWl0aXZlOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbDsK
KyAgICAgICAgZW5jb2RlciA8PCBtdWx0aXNhbXBsZTsKKyAgICAgICAgZW5jb2RlciA8PCBmcmFn
bWVudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JCYXNlPiBw
aXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IHBpcGVsaW5lRGVzY3Jp
cHRvckJhc2U7CisgICAgICAgIGlmICghcGlwZWxpbmVEZXNjcmlwdG9yQmFzZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZXJ0ZXhT
dGF0ZT4gdmVydGV4OworICAgICAgICBkZWNvZGVyID4+IHZlcnRleDsKKyAgICAgICAgaWYgKCF2
ZXJ0ZXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQcmltaXRpdmVTdGF0ZT4+IHByaW1pdGl2ZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBwcmltaXRpdmU7CisgICAgICAgIGlmICghcHJpbWl0aXZlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8RGVwdGhTdGVuY2lsU3RhdGU+PiBkZXB0aFN0ZW5jaWw7CisgICAgICAgIGRlY29k
ZXIgPj4gZGVwdGhTdGVuY2lsOworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPE11bHRpc2FtcGxlU3RhdGU+PiBtdWx0aXNhbXBsZTsKKyAgICAgICAgZGVjb2RlciA+
PiBtdWx0aXNhbXBsZTsKKyAgICAgICAgaWYgKCFtdWx0aXNhbXBsZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFs
PEZyYWdtZW50U3RhdGU+PiBmcmFnbWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBmcmFnbWVudDsK
KyAgICAgICAgaWYgKCFmcmFnbWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwaXBlbGluZURlc2NyaXB0b3JCYXNlKSwg
V1RGTW92ZSgqdmVydGV4KSwgV1RGTW92ZSgqcHJpbWl0aXZlKSwgV1RGTW92ZSgqZGVwdGhTdGVu
Y2lsKSwgV1RGTW92ZSgqbXVsdGlzYW1wbGUpLCBXVEZNb3ZlKCpmcmFnbWVudCkgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgK
aW5kZXggYTkxNzhkNjE3NzIzNzM2NzM4ZmYwZDYwZmQzNTBlZjMxZDNmY2VjOS4uMDZiMDMxYzcx
MmVkZTg3ZjU4NTlhM2Q1M2IzYjQ2ZWQ1OTExMjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaApAQCAt
MzMsNiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBSZXF1ZXN0
QWRhcHRlck9wdGlvbnMgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBvd2VyUHJl
ZmVyZW5jZT4gcG93ZXJQcmVmZXJlbmNlOwogICAgIGJvb2wgZm9yY2VGYWxsYmFja0FkYXB0ZXI7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBwb3dlclByZWZlcmVuY2U7Cisg
ICAgICAgIGVuY29kZXIgPDwgZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgfQorCisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEFkYXB0ZXJP
cHRpb25zPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPj4gcG93ZXJQ
cmVmZXJlbmNlOworICAgICAgICBkZWNvZGVyID4+IHBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAg
aWYgKCFwb3dlclByZWZlcmVuY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAg
ICAgIGRlY29kZXIgPj4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgICAgIGlmICghZm9yY2VG
YWxsYmFja0FkYXB0ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcG93ZXJQcmVmZXJlbmNlKSwgV1RGTW92ZSgqZm9yY2VG
YWxsYmFja0FkYXB0ZXIpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U2FtcGxlckJpbmRpbmdMYXlvdXQuaAppbmRleCA5MGVhOTg3YTExODYzZTNjMTE3ZDI2OTVjNTM3
NmU1YzA0NGY0MjRmLi45NTkyMWVhNTg3NDU1M2Q4ZmJmMGNkNWE1M2I0ZDAwNTAwNmUzMmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRp
bmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckJpbmRpbmdMYXlvdXQuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKIAogc3RydWN0IFNhbXBsZXJCaW5kaW5nTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6
U2FtcGxlckJpbmRpbmdUeXBlIHR5cGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFNhbXBsZXJCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5k
aW5nVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAgICBpZiAoIXR5
cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqdHlwZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U2FtcGxlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
YW1wbGVyRGVzY3JpcHRvci5oCmluZGV4IGQ3Yzc0N2E5NDc1NmNjYjQwM2RmM2ZlNTVmMWI1Mzhm
NTcyMTgxMjAuLmI4ZDg1OTQ4NzE0MmJjY2ZhYzUxMTVmOWJmYWQ5ZTM5Y2IwYzUzYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5oCkBAIC00NSw2ICs0NSw4MSBAQCBzdHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3IgOiBwdWJs
aWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIGZsb2F0IGxvZE1heENsYW1wOwogICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4gY29tcGFyZTsKICAgICB1
aW50MTZfdCBtYXhBbmlzb3Ryb3B5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAg
ICAgIGVuY29kZXIgPDwgYWRkcmVzc01vZGVVOworICAgICAgICBlbmNvZGVyIDw8IGFkZHJlc3NN
b2RlVjsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRyZXNzTW9kZVc7CisgICAgICAgIGVuY29kZXIg
PDwgbWFnRmlsdGVyOworICAgICAgICBlbmNvZGVyIDw8IG1pbkZpbHRlcjsKKyAgICAgICAgZW5j
b2RlciA8PCBtaXBtYXBGaWx0ZXI7CisgICAgICAgIGVuY29kZXIgPDwgbG9kTWluQ2xhbXA7Cisg
ICAgICAgIGVuY29kZXIgPDwgbG9kTWF4Q2xhbXA7CisgICAgICAgIGVuY29kZXIgPDwgY29tcGFy
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhBbmlzb3Ryb3B5OworICAgIH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNhbXBsZXJEZXNjcmlwdG9y
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNv
ZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0
b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZT4gYWRkcmVzc01vZGVVOworICAgICAg
ICBkZWNvZGVyID4+IGFkZHJlc3NNb2RlVTsKKyAgICAgICAgaWYgKCFhZGRyZXNzTW9kZVUpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlPiBhZGRyZXNzTW9kZVY7CisgICAgICAgIGRlY29kZXIg
Pj4gYWRkcmVzc01vZGVWOworICAgICAgICBpZiAoIWFkZHJlc3NNb2RlVikKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6QWRkcmVzc01vZGU+IGFkZHJlc3NNb2RlVzsKKyAgICAgICAgZGVjb2RlciA+PiBhZGRyZXNz
TW9kZVc7CisgICAgICAgIGlmICghYWRkcmVzc01vZGVXKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGaWx0ZXJN
b2RlPiBtYWdGaWx0ZXI7CisgICAgICAgIGRlY29kZXIgPj4gbWFnRmlsdGVyOworICAgICAgICBp
ZiAoIW1hZ0ZpbHRlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RmlsdGVyTW9kZT4gbWluRmlsdGVyOworICAg
ICAgICBkZWNvZGVyID4+IG1pbkZpbHRlcjsKKyAgICAgICAgaWYgKCFtaW5GaWx0ZXIpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkZpbHRlck1vZGU+IG1pcG1hcEZpbHRlcjsKKyAgICAgICAgZGVjb2RlciA+PiBt
aXBtYXBGaWx0ZXI7CisgICAgICAgIGlmICghbWlwbWFwRmlsdGVyKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsb2RNaW5D
bGFtcDsKKyAgICAgICAgZGVjb2RlciA+PiBsb2RNaW5DbGFtcDsKKyAgICAgICAgaWYgKCFsb2RN
aW5DbGFtcCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gbG9kTWF4Q2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4gbG9kTWF4
Q2xhbXA7CisgICAgICAgIGlmICghbG9kTWF4Q2xhbXApCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6Q29tcGFyZUZ1bmN0aW9uPj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21w
YXJlOworICAgICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IG1heEFuaXNvdHJvcHk7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWF4QW5pc290cm9weTsKKyAgICAgICAgaWYgKCFtYXhBbmlzb3Ry
b3B5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVV
KSwgV1RGTW92ZSgqYWRkcmVzc01vZGVWKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVXKSwgV1RGTW92
ZSgqbWFnRmlsdGVyKSwgV1RGTW92ZSgqbWluRmlsdGVyKSwgV1RGTW92ZSgqbWlwbWFwRmlsdGVy
KSwgV1RGTW92ZSgqbG9kTWluQ2xhbXApLCBXVEZNb3ZlKCpsb2RNYXhDbGFtcCksIFdURk1vdmUo
KmNvbXBhcmUpLCBXVEZNb3ZlKCptYXhBbmlzb3Ryb3B5KSB9IH07CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCmluZGV4IDdjMWRh
ZmZjYmZmNWUyODRmMGQ5NzkyZjI0ODY1Yzg4Y2U1MDJmYmQuLmRkNzc4NmNlOGI5NjYxMTZkMjY5
YTI1MTBhNWYyZjgyMjljMTcwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaApAQCAtMzMsNiArMzMs
MjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBTdHJpbmcgY29kZTsK
ICAgICAvLyBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBzb3VyY2VNYXA7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlw
dG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2RlOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYWRlck1vZHVs
ZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb2RlOworICAgICAgICBkZWNvZGVyID4+IGNv
ZGU7CisgICAgICAgIGlmICghY29kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdU
Rk1vdmUoKmNvZGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5j
aWxGYWNlU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2ls
RmFjZVN0YXRlLmgKaW5kZXggNjVhNmIzYWE5YTU0N2YzMjY2MDI0MDAyMzkwNjE4MWZjMTVhZWMz
MS4uZTQwMWI2NGNkMzUyZmZhZDBmNmE1NDg3NTcxMzI1OTcyZDM4MjQ4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oCkBA
IC0zNSw2ICszNSwzOSBAQCBzdHJ1Y3QgU3RlbmNpbEZhY2VTdGF0ZSB7CiAgICAgUEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb24gZmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3Bl
cmF0aW9uIGRlcHRoRmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uIHBh
c3NPcDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvbXBhcmU7CisgICAg
ICAgIGVuY29kZXIgPDwgZmFpbE9wOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoRmFpbE9wOwor
ICAgICAgICBlbmNvZGVyIDw8IHBhc3NPcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXBhcmVGdW5jdGlvbj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21wYXJlOwor
ICAgICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24+IGZh
aWxPcDsKKyAgICAgICAgZGVjb2RlciA+PiBmYWlsT3A7CisgICAgICAgIGlmICghZmFpbE9wKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uPiBkZXB0aEZhaWxPcDsKKyAgICAgICAgZGVj
b2RlciA+PiBkZXB0aEZhaWxPcDsKKyAgICAgICAgaWYgKCFkZXB0aEZhaWxPcCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbj4gcGFzc09wOworICAgICAgICBkZWNvZGVyID4+IHBhc3NP
cDsKKyAgICAgICAgaWYgKCFwYXNzT3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29tcGFyZSksIFdURk1vdmUoKmZhaWxP
cCksIFdURk1vdmUoKmRlcHRoRmFpbE9wKSwgV1RGTW92ZSgqcGFzc09wKSB9IH07CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaAppbmRleCBmMzEwMzA2MWIwNmZlMDYyY2VlYzAzMTFkMjBlMDM1Mjk2OWMwOGZiLi5j
MjViMWFmMzQxYWFhMDcwMTU5NjAwNTU4ZTNjYjY2NzAwMTgzYTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJl
QmluZGluZ0xheW91dC5oCkBAIC0zNSw2ICszNSwzMyBAQCBzdHJ1Y3QgU3RvcmFnZVRleHR1cmVC
aW5kaW5nTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3MgYWNj
ZXNzOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24gdmlld0RpbWVuc2lvbjsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IGFjY2VzczsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7
CisgICAgICAgIGVuY29kZXIgPDwgdmlld0RpbWVuc2lvbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdG9yYWdlVGV4dHVyZUJpbmRp
bmdMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M+IGFjY2VzczsKKyAgICAg
ICAgZGVjb2RlciA+PiBhY2Nlc3M7CisgICAgICAgIGlmICghYWNjZXNzKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAg
ICAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHZp
ZXdEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsKKyAgICAgICAg
aWYgKCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmFjY2VzcyksIFdURk1vdmUoKmZvcm1hdCksIFdU
Rk1vdmUoKnZpZXdEaW1lbnNpb24pIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVN1cHBvcnRlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGYzODkwM2UwNzI0MzIzOTE4MzZj
MjY2MzMzZmM1OTViZGM3NjIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewor
CitzdHJ1Y3QgU3VwcG9ydGVkRmVhdHVyZXMgeworICAgIFZlY3RvcjxTdHJpbmc+IGZlYXR1cmVz
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgZmVhdHVyZXM7CisgICAgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3VwcG9y
dGVkRmVhdHVyZXM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gZmVhdHVyZXM7CisgICAgICAgIGRlY29kZXIgPj4g
ZmVhdHVyZXM7CisgICAgICAgIGlmICghZmVhdHVyZXMpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZmVhdHVyZXMpIH0gfTsK
KyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZhY2EwM2VkNGZlZTM1MTY2ODU5MzdiY2UxZDZkZmQyYTJjOTZkNTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRz
LmgKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPGNzdGRpbnQ+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0cnVjdCBTdXBw
b3J0ZWRMaW1pdHMgeworICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24xRCB7IDAgfTsK
KyAgICB1aW50MzJfdCBtYXhUZXh0dXJlRGltZW5zaW9uMkQgeyAwIH07CisgICAgdWludDMyX3Qg
bWF4VGV4dHVyZURpbWVuc2lvbjNEIHsgMCB9OworICAgIHVpbnQzMl90IG1heFRleHR1cmVBcnJh
eUxheWVycyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhCaW5kR3JvdXBzIHsgMCB9OworICAgIHVp
bnQzMl90IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IHsgMCB9Owor
ICAgIHVpbnQzMl90IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IHsg
MCB9OworICAgIHVpbnQzMl90IG1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdlIHsgMCB9
OworICAgIHVpbnQzMl90IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UgeyAwIH07CisgICAgdWlu
dDMyX3QgbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50MzJf
dCBtYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50MzJfdCBt
YXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlIHsgMCB9OworICAgIHVpbnQ2NF90IG1heFVu
aWZvcm1CdWZmZXJCaW5kaW5nU2l6ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBtYXhTdG9yYWdlQnVm
ZmVyQmluZGluZ1NpemUgeyAwIH07CisgICAgdWludDMyX3QgbWluVW5pZm9ybUJ1ZmZlck9mZnNl
dEFsaWdubWVudCB7IDAgfTsKKyAgICB1aW50MzJfdCBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxp
Z25tZW50IHsgMCB9OworICAgIHVpbnQzMl90IG1heFZlcnRleEJ1ZmZlcnMgeyAwIH07CisgICAg
dWludDMyX3QgbWF4VmVydGV4QXR0cmlidXRlcyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhWZXJ0
ZXhCdWZmZXJBcnJheVN0cmlkZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhJbnRlclN0YWdlU2hh
ZGVyQ29tcG9uZW50cyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU3Rv
cmFnZVNpemUgeyAwIH07CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29y
a2dyb3VwIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWCB7IDAg
fTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkgeyAwIH07CisgICAgdWlu
dDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaIHsgMCB9OworICAgIHVpbnQzMl90IG1heENv
bXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uIHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZURpbWVuc2lvbjFEOworICAgICAgICBlbmNvZGVyIDw8
IG1heFRleHR1cmVEaW1lbnNpb24yRDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhUZXh0dXJlRGlt
ZW5zaW9uM0Q7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZUFycmF5TGF5ZXJzOworICAg
ICAgICBlbmNvZGVyIDw8IG1heEJpbmRHcm91cHM7CisgICAgICAgIGVuY29kZXIgPDwgbWF4RHlu
YW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGVuY29kZXIgPDwg
bWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGVuY29k
ZXIgPDwgbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIg
PDwgbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9y
YWdlQnVmZmVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0b3JhZ2VU
ZXh0dXJlc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFVuaWZvcm1CdWZm
ZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VW5pZm9ybUJ1ZmZlckJp
bmRpbmdTaXplOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5Vbmlmb3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50Owor
ICAgICAgICBlbmNvZGVyIDw8IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4VmVydGV4QnVmZmVyczsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhW
ZXJ0ZXhBdHRyaWJ1dGVzOworICAgICAgICBlbmNvZGVyIDw8IG1heFZlcnRleEJ1ZmZlckFycmF5
U3RyaWRlOworICAgICAgICBlbmNvZGVyIDw8IG1heEludGVyU3RhZ2VTaGFkZXJDb21wb25lbnRz
OworICAgICAgICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAg
ICAgICAgZW5jb2RlciA8PCBtYXhDb21wdXRlSW52b2NhdGlvbnNQZXJXb3JrZ3JvdXA7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBlbmNvZGVy
IDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhDb21w
dXRlV29ya2dyb3VwU2l6ZVo7CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91
cHNQZXJEaW1lbnNpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkTGltaXRzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVEaW1l
bnNpb24xRDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlRGltZW5zaW9uMUQ7CisgICAg
ICAgIGlmICghbWF4VGV4dHVyZURpbWVuc2lvbjFEKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0dXJlRGlt
ZW5zaW9uMkQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZURpbWVuc2lvbjJEOworICAg
ICAgICBpZiAoIW1heFRleHR1cmVEaW1lbnNpb24yRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VGV4dHVyZURp
bWVuc2lvbjNEOworICAgICAgICBkZWNvZGVyID4+IG1heFRleHR1cmVEaW1lbnNpb24zRDsKKyAg
ICAgICAgaWYgKCFtYXhUZXh0dXJlRGltZW5zaW9uM0QpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVB
cnJheUxheWVyczsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlQXJyYXlMYXllcnM7Cisg
ICAgICAgIGlmICghbWF4VGV4dHVyZUFycmF5TGF5ZXJzKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhCaW5kR3Jv
dXBzOworICAgICAgICBkZWNvZGVyID4+IG1heEJpbmRHcm91cHM7CisgICAgICAgIGlmICghbWF4
QmluZEdyb3VwcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxp
bmVMYXlvdXQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVy
UGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGlmICghbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVy
UGlwZWxpbmVMYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBp
cGVsaW5lTGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IG1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBpZiAoIW1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFk
ZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJT
dGFnZTsKKyAgICAgICAgaWYgKCFtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1
aW50MzJfdD4gbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBt
YXhTYW1wbGVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBpZiAoIW1heFNhbXBsZXJzUGVyU2hh
ZGVyU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAg
ICAgaWYgKCFtYXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhT
dG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhTdG9y
YWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhTdG9yYWdlVGV4dHVy
ZXNQZXJTaGFkZXJTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJT
dGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdl
OworICAgICAgICBpZiAoIW1heFVuaWZvcm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IG1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhV
bmlmb3JtQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAgIGlmICghbWF4VW5pZm9ybUJ1ZmZlckJp
bmRpbmdTaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemU7CisgICAg
ICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAgICBpZiAo
IW1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWluVW5pZm9ybUJ1ZmZl
ck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBtaW5Vbmlmb3JtQnVmZmVyT2Zm
c2V0QWxpZ25tZW50OworICAgICAgICBpZiAoIW1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1l
bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8dWludDMyX3Q+IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAgICAg
IGRlY29kZXIgPj4gbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgaWYg
KCFtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhWZXJ0ZXhC
dWZmZXJzOworICAgICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlcnM7CisgICAgICAgIGlm
ICghbWF4VmVydGV4QnVmZmVycykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VmVydGV4QXR0cmlidXRlczsKKyAg
ICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhBdHRyaWJ1dGVzOworICAgICAgICBpZiAoIW1heFZl
cnRleEF0dHJpYnV0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlOwor
ICAgICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlOworICAgICAgICBp
ZiAoIW1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhJbnRlclN0YWdl
U2hhZGVyQ29tcG9uZW50czsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhJbnRlclN0YWdlU2hhZGVy
Q29tcG9uZW50czsKKyAgICAgICAgaWYgKCFtYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9uZW50cykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplOworICAgICAgICBkZWNv
ZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAgICAgICAgaWYgKCFtYXhD
b21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVJbnZvY2F0
aW9uc1Blcldvcmtncm91cDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlSW52b2NhdGlv
bnNQZXJXb3JrZ3JvdXA7CisgICAgICAgIGlmICghbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29y
a2dyb3VwKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVg7CisgICAgICAgIGRl
Y29kZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBpZiAoIW1heENvbXB1
dGVXb3JrZ3JvdXBTaXplWCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVZOwor
ICAgICAgICBkZWNvZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgaWYg
KCFtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVXb3JrZ3Jv
dXBTaXplWjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7Cisg
ICAgICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21w
dXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRl
V29ya2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFtYXhDb21wdXRlV29ya2dyb3Vw
c1BlckRpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHsgeworICAgICAgICAgICAgKm1heFRleHR1cmVEaW1lbnNpb24xRCwKKyAgICAg
ICAgICAgICptYXhUZXh0dXJlRGltZW5zaW9uMkQsCisgICAgICAgICAgICAqbWF4VGV4dHVyZURp
bWVuc2lvbjNELAorICAgICAgICAgICAgKm1heFRleHR1cmVBcnJheUxheWVycywKKyAgICAgICAg
ICAgICptYXhCaW5kR3JvdXBzLAorICAgICAgICAgICAgKm1heER5bmFtaWNVbmlmb3JtQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heFNhbXBsZWRUZXh0dXJlc1BlclNo
YWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAg
ICAgICAgICAqbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICpt
YXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhVbmlmb3Jt
QnVmZmVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFVuaWZvcm1CdWZmZXJCaW5k
aW5nU2l6ZSwKKyAgICAgICAgICAgICptYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemUsCisgICAg
ICAgICAgICAqbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAgICAgICpt
aW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50LAorICAgICAgICAgICAgKm1heFZlcnRleEJ1
ZmZlcnMsCisgICAgICAgICAgICAqbWF4VmVydGV4QXR0cmlidXRlcywKKyAgICAgICAgICAgICpt
YXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSwKKyAgICAgICAgICAgICptYXhJbnRlclN0YWdlU2hh
ZGVyQ29tcG9uZW50cywKKyAgICAgICAgICAgICptYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNp
emUsCisgICAgICAgICAgICAqbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwLAorICAg
ICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWCwKKyAgICAgICAgICAgICptYXhDb21w
dXRlV29ya2dyb3VwU2l6ZVksCisgICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtncm91cFNpemVa
LAorICAgICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uLAorICAgICAg
ICB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xh
eW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5n
TGF5b3V0LmgKaW5kZXggMDY5MjY0NGViMDlhZmU1YmQ4NzI5N2RhOWNmMGZiMWNlODIxZjhmZS4u
YTI5YjljZjJkNzhlOTI1ZDBiYTAzZGM2MjM4YWU3NDlmMzA4MGZmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0
LmgKQEAgLTM0LDYgKzM0LDMzIEBAIHN0cnVjdCBUZXh0dXJlQmluZGluZ0xheW91dCB7CiAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlIHNhbXBsZVR5cGU7CiAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CiAgICAgYm9vbCBtdWx0aXNh
bXBsZWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVUeXBlOwor
ICAgICAgICBlbmNvZGVyIDw8IHZpZXdEaW1lbnNpb247CisgICAgICAgIGVuY29kZXIgPDwgbXVs
dGlzYW1wbGVkOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1w
bGVUeXBlPiBzYW1wbGVUeXBlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVR5cGU7CisgICAg
ICAgIGlmICghc2FtcGxlVHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+
IHZpZXdEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsKKyAgICAg
ICAgaWYgKCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG11bHRpc2FtcGxlZDsKKyAgICAgICAgZGVj
b2RlciA+PiBtdWx0aXNhbXBsZWQ7CisgICAgICAgIGlmICghbXVsdGlzYW1wbGVkKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
KnNhbXBsZVR5cGUpLCBXVEZNb3ZlKCp2aWV3RGltZW5zaW9uKSwgV1RGTW92ZSgqbXVsdGlzYW1w
bGVkKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3Jp
cHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlw
dG9yLmgKaW5kZXggMzFhMDY2ZTY1MDQ1YTVmOTc1ZGIxNGM2ZTdiMTBhNWZmMTdiOTkxYi4uMzMy
MjE3YmE2MTI1MmMxNDgwN2JlNjQ4ODAyOWUzNWQ4ZWM1MjUyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKQEAgLTQx
LDYgKzQxLDU3IEBAIHN0cnVjdCBUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNj
cmlwdG9yQmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24gZGltZW5zaW9u
OwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZVVzYWdlRmxhZ3MgdXNhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsK
KyAgICAgICAgZW5jb2RlciA8PCBzaXplOworICAgICAgICBlbmNvZGVyIDw8IG1pcExldmVsQ291
bnQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlQ291bnQ7CisgICAgICAgIGVuY29kZXIgPDwg
ZGltZW5zaW9uOworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8
PCB1c2FnZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3RE
ZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6ZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkludGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OworICAgICAgICBkZWNvZGVyID4+IG1p
cExldmVsQ291bnQ7CisgICAgICAgIGlmICghbWlwTGV2ZWxDb3VudCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPiBzYW1wbGVDb3VudDsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3VudDsKKyAg
ICAgICAgaWYgKCFzYW1wbGVDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4g
ZGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IGRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFk
aW1lbnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAg
ZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlVXNhZ2VGbGFncz4gdXNhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gdXNhZ2U7CisgICAg
ICAgIGlmICghdXNhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpz
aXplKSwgV1RGTW92ZSgqbWlwTGV2ZWxDb3VudCksIFdURk1vdmUoKnNhbXBsZUNvdW50KSwgV1RG
TW92ZSgqZGltZW5zaW9uKSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2UpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRv
ci5oCmluZGV4IGZmYTU2ZTUzYmJhMDkyMDlhYmJkNWYxZTQ5YzI2YWRjMjNlNTc0ZWEuLmE4MTc0
MzU1ZTFkNjlmMzM2ODI5ZjY0MjNmMDMxMjJlOTlmZTg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgK
QEAgLTQyLDYgKzQyLDYzIEBAIHN0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3IgOiBwdWJsaWMg
T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Oklu
dGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSBiYXNlQXJyYXlMYXllcjsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYXJyYXlMYXllckNvdW50OworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2Um
PigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgZm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8
IGRpbWVuc2lvbjsKKyAgICAgICAgZW5jb2RlciA8PCBhc3BlY3Q7CisgICAgICAgIGVuY29kZXIg
PDwgYmFzZU1pcExldmVsOworICAgICAgICBlbmNvZGVyIDw8IG1pcExldmVsQ291bnQ7CisgICAg
ICAgIGVuY29kZXIgPDwgYmFzZUFycmF5TGF5ZXI7CisgICAgICAgIGVuY29kZXIgPDwgYXJyYXlM
YXllckNvdW50OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBv
YmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0Pj4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+
IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+PiBkaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4g
ZGltZW5zaW9uOworICAgICAgICBpZiAoIWRpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVy
ZUFzcGVjdD4gYXNwZWN0OworICAgICAgICBkZWNvZGVyID4+IGFzcGVjdDsKKyAgICAgICAgaWYg
KCFhc3BlY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBiYXNlTWlwTGV2ZWw7
CisgICAgICAgIGRlY29kZXIgPj4gYmFzZU1pcExldmVsOworICAgICAgICBpZiAoIWJhc2VNaXBM
ZXZlbCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4+IG1p
cExldmVsQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gbWlwTGV2ZWxDb3VudDsKKyAgICAgICAg
aWYgKCFtaXBMZXZlbENvdW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYmFz
ZUFycmF5TGF5ZXI7CisgICAgICAgIGRlY29kZXIgPj4gYmFzZUFycmF5TGF5ZXI7CisgICAgICAg
IGlmICghYmFzZUFycmF5TGF5ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdl
ckNvb3JkaW5hdGU+PiBhcnJheUxheWVyQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gYXJyYXlM
YXllckNvdW50OworICAgICAgICBpZiAoIWFycmF5TGF5ZXJDb3VudCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3RE
ZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKmRpbWVuc2lvbiksIFdU
Rk1vdmUoKmFzcGVjdCksIFdURk1vdmUoKmJhc2VNaXBMZXZlbCksIFdURk1vdmUoKm1pcExldmVs
Q291bnQpLCBXVEZNb3ZlKCpiYXNlQXJyYXlMYXllciksIFdURk1vdmUoKmFycmF5TGF5ZXJDb3Vu
dCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9y
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDI0ODEwMmRmNmY0MGZhZGFmOGFhZjA2MTljNTgyMTQ1YTU5NmYxNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0
aW9uRXJyb3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKKworc3RydWN0IFZhbGlkYXRpb25FcnJvciB7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBtZXNzYWdlOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZhbGlkYXRpb25F
cnJvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgICAg
ICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbWVzc2FnZSkgfSB9OworICAgIH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmgKaW5kZXggYTFiNTNjOTdjNzliNTc5M2M5N2U2
MWZiM2FhN2JkNjNiZTM2OWE3My4uZjkzZmJjZDYyYzEyODkwNzNjNGE5NjcxZmIyYjY2MDZkZDBk
ZDM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRl
eEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0
ZXhBdHRyaWJ1dGUuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IFZlcnRleEF0dHJpYnV0ZSB7
CiAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAKICAgICBQQUw6OldlYkdQVTo6SW5k
ZXgzMiBzaGFkZXJMb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29kZXIgPDwg
c2hhZGVyTG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVydGV4QXR0cmlidXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEZvcm1h
dD4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3Jt
YXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0OworICAgICAgICBkZWNvZGVyID4+IG9m
ZnNldDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkluZGV4MzI+IHNoYWRl
ckxvY2F0aW9uOworICAgICAgICBkZWNvZGVyID4+IHNoYWRlckxvY2F0aW9uOworICAgICAgICBp
ZiAoIXNoYWRlckxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKm9mZnNldCksIFdU
Rk1vdmUoKnNoYWRlckxvY2F0aW9uKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaAppbmRleCAwMzc3NzRiMWI3MTg5ZTM2NWU4MjMwYjNm
YjE2MjgzYzY4MDcxNDZiLi4yMzEwMmRjZGIzNDQyNGI3YTgxYjVkZjIyMmZkY2QwNWQwMjM1OGUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVm
ZmVyTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRl
eEJ1ZmZlckxheW91dC5oCkBAIC0zNiw2ICszNiwzMyBAQCBzdHJ1Y3QgVmVydGV4QnVmZmVyTGF5
b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGFycmF5U3RyaWRlOwogICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhTdGVwTW9kZSBzdGVwTW9kZTsKICAgICBWZWN0b3I8VmVydGV4QXR0cmlidXRl
PiBhdHRyaWJ1dGVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgYXJyYXlT
dHJpZGU7CisgICAgICAgIGVuY29kZXIgPDwgc3RlcE1vZGU7CisgICAgICAgIGVuY29kZXIgPDwg
YXR0cmlidXRlczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBhcnJh
eVN0cmlkZTsKKyAgICAgICAgZGVjb2RlciA+PiBhcnJheVN0cmlkZTsKKyAgICAgICAgaWYgKCFh
cnJheVN0cmlkZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU+IHN0ZXBNb2RlOworICAg
ICAgICBkZWNvZGVyID4+IHN0ZXBNb2RlOworICAgICAgICBpZiAoIXN0ZXBNb2RlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxWZXJ0ZXhBdHRyaWJ1dGU+PiBhdHRyaWJ1dGVzOworICAgICAgICBkZWNvZGVyID4+IGF0dHJp
YnV0ZXM7CisgICAgICAgIGlmICghYXR0cmlidXRlcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCphcnJheVN0cmlkZSksIFdU
Rk1vdmUoKnN0ZXBNb2RlKSwgV1RGTW92ZSgqYXR0cmlidXRlcykgfSB9OworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDg0MjQ3MTNkZGNkNDk4ZjZiNjAxYzQw
ODJjNzE5N2UxZGJlMmJiNTkuLjQ2ZmY4Yzc1NDNlYzAyYWEyMWQ2ZGVkN2FkOWUxZjE0ODIwMTFl
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0
ZS5oCkBAIC0zNCw2ICszNCwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1
Y3QgVmVydGV4U3RhdGUgOiBwdWJsaWMgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFZlY3Rvcjxz
dGQ6Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZlcnM7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFn
ZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXJzOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlcnRleFN0YXRlPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJv
Z3JhbW1hYmxlU3RhZ2U+IHByb2dyYW1tYWJsZVN0YWdlOworICAgICAgICBkZWNvZGVyID4+IHBy
b2dyYW1tYWJsZVN0YWdlOworICAgICAgICBpZiAoIXByb2dyYW1tYWJsZVN0YWdlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxzdGQ6Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+PiBidWZmZXJzOworICAgICAgICBk
ZWNvZGVyID4+IGJ1ZmZlcnM7CisgICAgICAgIGlmICghYnVmZmVycykKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwcm9ncmFt
bWFibGVTdGFnZSksIFdURk1vdmUoKmJ1ZmZlcnMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNjc2ZGFkZGFjODgzMTk2YzZh
MzQ0YTlmYjFhNmQ0Y2Q0MWFmOGNiYi4uOTFkMWVhYjg5MDUxODRmOGUwMjEzZDM5YWU4ZGRiNTQy
YzNjOGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMSw2ICszMSwyOSBAQCBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRSZW5kZXJpbmdS
ZXNvdXJjZXNSZXF1ZXN0LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRXZWJHTFJlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3QuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVBZGFwdGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNw
cAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNwcAorR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHAKK0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BV
LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3Bw
CitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAKK0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVTYW1wbGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9k
dWxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAKK0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcAorR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC03NjAsMyArNzgzLDI2IEBAIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorCitSZW1vdGVB
ZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJlY2VpdmVy
LmNwcAorUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQnVm
ZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKK1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlRGV2aWNlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlR1BVTWVzc2FnZVJl
Y2VpdmVyLmNwcAorUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1v
dGVRdWVyeVNldE1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVF1ZXVlTWVzc2FnZVJlY2VpdmVy
LmNwcAorUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlclBhc3NFbmNvZGVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUmVuZGVyUGlwZWxpbmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCitSZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlU2hhZGVyTW9kdWxl
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2RhNjU3NGY4ZDY0Mzg0M2Q5MDQy
ZDMxNDQ2NTM2OWRjMTg1OGQ3Yi4uNThlNDI5MGI5YWI3MWRhMThiMjA5MDhmNjA5ZDQ1NzE5NDBk
MDEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yODk1LDYgKzI4OTUsODAgQEAKIAkJMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8q
IFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQzhFMkEzMjEyNzc4NTI0MDBCQzdC
RDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSW5zcGVjdG9yTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViSW5zcGVjdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclVJTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yVUlN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDFEMjc0NDZBMDMwMDJD
Q0I3OCAvKiBSZW1vdGVHUFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR1BVLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMUUyNzQ0NkEwMzAwMkNDQjc4IC8q
IFdlYkdQVU9iamVjdEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVT2JqZWN0SGVhcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAxRjI3NDQ2QTAzMDAyQ0NCNzggLyog
UmVtb3RlUXVlcnlTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUXVlcnlTZXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjAyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90
ZVJlbmRlckJ1bmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJCdW5kbGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjEyNzQ0NkEwNDAwMkNDQjc4IC8qIFJl
bW90ZVF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVF1ZXVlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjIyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyMzI3NDQ2QTA1
MDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZVNoYWRlck1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDI0Mjc0NDZBMDUwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkdQVU9iamVjdEhlYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzAyNTI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVUZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDI2Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDI3Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQ
YXNzRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyODI3NDQ2QTA2MDAyQ0NCNzggLyog
UmVtb3RlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTYW1wbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjkyNzQ0NkEwNzAwMkNDQjc4IC8q
IFJlbW90ZVJlbmRlclBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRlclBpcGVs
aW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJBMjc0NDZBMDcwMDJD
Q0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwMkIyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVT
YW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMkQyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5l
TGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJFMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVU
ZXh0dXJlVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyRjI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3Rl
RGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZURldmljZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDMwMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVR
dWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzAzMTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlv
dXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMjI3NDQ2QTA4MDAyQ0NCNzggLyogUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUV4dGVybmFsVGV4dHVy
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMzI3NDQ2QTA4MDAyQ0NC
NzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
UmVuZGVyUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAz
NDI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVNoYWRlck1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzAzNTI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwMzYyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZVRleHR1cmVWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwMzcyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwMzgyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZUdQVS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVHUFUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzkyNzQ0NkEwOTAw
MkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVSZW5kZXJCdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAz
QTI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlUXVlcnlTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzAzQjI3NDQ2QTBBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDNDMjc0NDZBMEEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlw
ZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDREMjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVC
dWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQnVmZmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDRFMjc0NDZDQjcwMDJDQ0I3OCAv
KiBSZW1vdGVCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNEYy
NzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQWRhcHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA1MDI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDb21tYW5kQnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTEyNzQ0NkNCODAwMkNDQjc4
IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzA1MjI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDUzMjc0NDZDQjkwMDJDQ0I3
OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlQmluZEdyb3VwTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDU0Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQmluZEdyb3VwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU1Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVDb21t
YW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDb21t
YW5kRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NjI3NDQ2
Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NzI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29t
bWFuZEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDb21t
YW5kQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU4Mjc0NDZD
QkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTkyNzQ0NkNCQTAwMkNDQjc4IC8qIFJl
bW90ZUFkYXB0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDVBMjc0
NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDc5Mjc0NEExQ0MwMDJDQ0I3OCAvKiBXZWJHUFVT
dXBwb3J0ZWRGZWF0dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3QTI3NDRBMjA1MDAyQ0NC
NzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVN1cHBv
cnRlZExpbWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3QjI3NDRC
NDE2MDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA3QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9u
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmFsaWRhdGlvbkVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDdFMjc0NEI5REIwMDJDQ0I3OCAvKiBXZWJHUFVF
cnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzA4MDI3NDRCRDk3MDAyQ0NCNzggLyogUmVtb3RlUXVldWUubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlUXVldWUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDgxMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODIyNzQ0QkQ5ODAwMkNDQjc4
IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVFeHRlcm5h
bFRleHR1cmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDgzMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzA4NDI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODUyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJl
bW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NjI3NDRC
RDk5MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDg3Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZVRleHR1cmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMDg4Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODkyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1h
bmRCdWZmZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEEyNzQ0QkQ5OTAwMkNDQjc4
IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwOEIyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzA4QzI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZVNh
bXBsZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEUyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90
ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDb21wdXRlUGlwZWxpbmUu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDhGMjc0NEJE
OUEwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlRGV2aWNl
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5MDI3NDRC
RDlBMDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUJ1ZmZl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTEyNzQ0
QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQWRh
cHRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTIy
NzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVCaW5kR3JvdXAubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDkzMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5NDI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3Rl
R1BVLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUdQVS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTUyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUNvbW1h
bmRFbmNvZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzlFQkE1QjIwODdFNzRFMDAwNTQ0
MjkgLyogTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW07IHBhdGggPSBpb3MvTmF0
aXZlV2ViTW91c2VFdmVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNB
OEI5MzUxMjdDNzc0RTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JVSVByb3h5TWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0E4Qjk0MzEyN0M4ODJBMDA1NzZD
MkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CkBAIC03MTg1LDYgKzcyNTksODEgQEAKIAkJCXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUM5OEMwMUMyNzQ0NjkyNjAwMkNDQjc4IC8qIFdl
YkdQVSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM5
OEMwNTkyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICovLAorCQkJCTFDOThD
MDRGMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLmggKi8sCisJCQkJMUM5OEMwOTEy
NzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5
OEMwNTIyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5jcHAgKi8sCisJCQkJMUM5
OEMwNTQyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5oICovLAorCQkJCTFDOThD
MDkyMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMUM5OEMwNTEyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5jcHAg
Ki8sCisJCQkJMUM5OEMwNTMyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91
dC5oICovLAorCQkJCTFDOThDMDg0Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBM
YXlvdXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNEUyNzQ0NkNCNzAwMkNDQjc4IC8qIFJl
bW90ZUJ1ZmZlci5jcHAgKi8sCisJCQkJMUM5OEMwNEQyNzQ0NkNCNzAwMkNDQjc4IC8qIFJlbW90
ZUJ1ZmZlci5oICovLAorCQkJCTFDOThDMDkwMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVCdWZm
ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTAyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90
ZUNvbW1hbmRCdWZmZXIuY3BwICovLAorCQkJCTFDOThDMDU3Mjc0NDZDQjkwMDJDQ0I3OCAvKiBS
ZW1vdGVDb21tYW5kQnVmZmVyLmggKi8sCisJCQkJMUM5OEMwODkyNzQ0QkQ5OTAwMkNDQjc4IC8q
IFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTYyNzQ0NkNC
OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzA1NTI3
NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIuaCAqLywKKwkJCQkxQzk4QzA5
NTI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwNTgyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
ci5jcHAgKi8sCisJCQkJMUM5OEMwNUEyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQ
YXNzRW5jb2Rlci5oICovLAorCQkJCTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVD
b21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwM0IyNzQ0NkEwQTAw
MkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAgKi8sCisJCQkJMUM5OEMwM0MyNzQ0
NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5oICovLAorCQkJCTFDOThDMDhF
Mjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwMkYyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5jcHAgKi8sCisJ
CQkJMUM5OEMwMzcyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5oICovLAorCQkJCTFD
OThDMDhGMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMUM5OEMwMkEyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAg
Ki8sCisJCQkJMUM5OEMwMzIyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVy
ZS5oICovLAorCQkJCTFDOThDMDgyMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRl
eHR1cmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMUQyNzQ0NkEwMzAwMkNDQjc4IC8qIFJl
bW90ZUdQVS5jcHAgKi8sCisJCQkJMUM5OEMwMzgyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZUdQ
VS5oICovLAorCQkJCTFDOThDMDk0Mjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVHUFUubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwMzEyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5l
TGF5b3V0LmNwcCAqLywKKwkJCQkxQzk4QzAyRDI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlUGlw
ZWxpbmVMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA4NTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3Rl
UGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwM0EyNzQ0NkEwOTAwMkND
Qjc4IC8qIFJlbW90ZVF1ZXJ5U2V0LmNwcCAqLywKKwkJCQkxQzk4QzAxRjI3NDQ2QTAzMDAyQ0NC
NzggLyogUmVtb3RlUXVlcnlTZXQuaCAqLywKKwkJCQkxQzk4QzA4QjI3NDRCRDk5MDAyQ0NCNzgg
LyogUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjEyNzQ0NkEwNDAw
MkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmNwcCAqLywKKwkJCQkxQzk4QzAzMDI3NDQ2QTA4MDAyQ0NC
NzggLyogUmVtb3RlUXVldWUuaCAqLywKKwkJCQkxQzk4QzA4MDI3NDRCRDk3MDAyQ0NCNzggLyog
UmVtb3RlUXVldWUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzkyNzQ0NkEwOTAwMkNDQjc4
IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5jcHAgKi8sCisJCQkJMUM5OEMwMjAyNzQ0NkEwNDAwMkND
Qjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5oICovLAorCQkJCTFDOThDMDgzMjc0NEJEOTgwMDJD
Q0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkIy
NzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwICovLAorCQkJ
CTFDOThDMDIyMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmgg
Ki8sCisJCQkJMUM5OEMwOEEyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjYyNzQ0NkEwNjAwMkNDQjc4IC8qIFJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzAyNzI3NDQ2QTA2MDAyQ0NC
NzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCAqLywKKwkJCQkxQzk4QzA4MTI3NDRCRDk4
MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJ
MUM5OEMwMzMyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmNwcCAqLywK
KwkJCQkxQzk4QzAyOTI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUuaCAq
LywKKwkJCQkxQzk4QzA4NjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjgyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVNh
bXBsZXIuY3BwICovLAorCQkJCTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVTYW1w
bGVyLmggKi8sCisJCQkJMUM5OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjMyNzQ0NkEwNTAwMkNDQjc4IC8qIFJlbW90ZVNo
YWRlck1vZHVsZS5jcHAgKi8sCisJCQkJMUM5OEMwMzQyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90
ZVNoYWRlck1vZHVsZS5oICovLAorCQkJCTFDOThDMDhDMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1v
dGVTaGFkZXJNb2R1bGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzUyNzQ0NkEwOTAwMkND
Qjc4IC8qIFJlbW90ZVRleHR1cmUuY3BwICovLAorCQkJCTFDOThDMDI1Mjc0NDZBMDYwMDJDQ0I3
OCAvKiBSZW1vdGVUZXh0dXJlLmggKi8sCisJCQkJMUM5OEMwODcyNzQ0QkQ5OTAwMkNDQjc4IC8q
IFJlbW90ZVRleHR1cmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzYyNzQ0NkEwOTAwMkND
Qjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNwcCAqLywKKwkJCQkxQzk4QzAyRTI3NDQ2QTA4MDAy
Q0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcuaCAqLywKKwkJCQkxQzk4QzA4ODI3NDRCRDk5MDAy
Q0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjQy
NzQ0NkEwNTAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdEhlYXAuY3BwICovLAorCQkJCTFDOThDMDFF
Mjc0NDZBMDMwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmggKi8sCisJCQkpOworCQkJcGF0
aCA9IFdlYkdQVTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFDQjc0NjE5
Mjc0MzZERTMwMEYxOTg3NCAvKiBXZWJHUFUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtNzI1NSw2ICs3NDA0LDcgQEAKIAkJCQkxQ0I3NDY3OTI3NDM5Q0Iy
MDBGMTk4NzQgLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oICovLAogCQkJCTFDQjc0NjgzMjc0
MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oICovLAogCQkJ
CTFDQjc0NjkyMjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0
b3IuaCAqLywKKwkJCQkxQzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRp
b25NZXNzYWdlLmggKi8sCiAJCQkJMUNCNzQ2OTcyNzQzOUNCQTAwRjE5ODc0IC8qIFdlYkdQVUNv
bXB1dGVQYXNzRGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0Njg5Mjc0MzlDQjYwMEYxOTg3NCAv
KiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oICovLAogCQkJCTFDQjc0Njc2Mjc0
MzlDQjEwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCkBA
IC03MjYyLDYgKzc0MTIsNyBAQAogCQkJCTFDQjc0NjQ3Mjc0MzdBN0YwMEYxOTg3NCAvKiBXZWJH
UFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oICovLAogCQkJCTFDQjc0NjcxMjc0MzlDQjAwMEYx
OTg3NCAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oICovLAogCQkJCTFDQjc0Njg1Mjc0MzlD
QjUwMEYxOTg3NCAvKiBXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwN0Uy
NzQ0QjlEQjAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmggKi8sCiAJCQkJMUNCNzQ2ODcyNzQzOUNC
NjAwRjE5ODc0IC8qIFdlYkdQVUV4dGVudDNELmggKi8sCiAJCQkJMUNCNzQ2NkYyNzQzOUNCMDAw
RjE5ODc0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywKIAkJCQkx
Q0I3NDY4NjI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRv
ci5oICovLApAQCAtNzI3Niw2ICs3NDI3LDcgQEAKIAkJCQkxQ0I3NDY2QzI3NDM5Q0FGMDBGMTk4
NzQgLyogV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQkxQ0I3NDY3MDI3NDM5
Q0IwMDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luMkQuaCAqLywKIAkJCQkxQ0I3NDZBMDI3NDM5Q0JE
MDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luM0QuaCAqLywKKwkJCQkxQzk4QzA3QzI3NDRCOTkxMDAy
Q0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovLAogCQkJCTFDQjc0Njk0Mjc0MzlD
QjkwMEYxOTg3NCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJMUNC
NzQ2OTgyNzQzOUNCQjAwRjE5ODc0IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5o
ICovLAogCQkJCTFDQjc0NjZEMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVQcmltaXRpdmVTdGF0
ZS5oICovLApAQCAtNzI5NSw5ICs3NDQ3LDEyIEBACiAJCQkJMUNCNzQ2NkIyNzQzOUNBRjAwRjE5
ODc0IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDY3MzI3
NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oICovLAogCQkJCTFDQjc0
Njk2Mjc0MzlDQkEwMEYxOTg3NCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aCAqLywKKwkJCQkxQzk4QzA3OTI3NDRBMUNDMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVh
dHVyZXMuaCAqLywKKwkJCQkxQzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9y
dGVkTGltaXRzLmggKi8sCiAJCQkJMUNCNzQ2NzUyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVVRl
eHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCiAJCQkJMUNCNzQ2ODEyNzQzOUNCNDAwRjE5ODc0IC8q
IFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMUNCNzQ2ODAyNzQzOUNCNDAwRjE5
ODc0IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMDdEMjc0
NEI5QjcwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLywKIAkJCQkxQ0I3NDY3
MjI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmggKi8sCiAJCQkJMUNC
NzQ2OEYyNzQzOUNCODAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oICovLAog
CQkJCTFDQjc0NjlBMjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5oICovLApA
QCAtOTA1MSw2ICs5MjA2LDcgQEAKIAkJNTUwNjQwQTEyNDA3MUEyOTAwQUFFMDQ1IC8qIGdyYXBo
aWNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzk4
QzAxQzI3NDQ2OTI2MDAyQ0NCNzggLyogV2ViR1BVICovLAogCQkJCUY0MDk0Q0JDMjU1MzA0QUYw
MDNENzNFMyAvKiBEaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5jcHAgKi8sCiAJCQkJRjQwOTRDQkIy
NTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggKi8sCiAJCQkJN0Ix
NjE5MTMyNzE5QUU3NjAwQzQwRUFDIC8qIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5jcHAKaW5kZXggZjYzNDg0NmI5NTU3
M2Q1MzQ2ZDg2YjhkYjZkYjlkMzQ0MzVkMTE3My4uZGE0YmQxMTBiYzM3ZmEwYWIyMjU5Zjc3ODFm
MGFjMzlmN2ZkNDE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwCkBA
IC00Miw3ICs0Miw3IEBAIFJlbW90ZUFkYXB0ZXJQcm94eTo6flJlbW90ZUFkYXB0ZXJQcm94eSgp
CiB7CiB9CiAKLXZvaWQgUmVtb3RlQWRhcHRlclByb3h5OjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFBB
TDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+KT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3RlQWRh
cHRlclByb3h5OjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZp
Y2U+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKICAg
ICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHku
aAppbmRleCA2ZTg1NDNiMTA1YjliNTQ5YmY2OGY2ODkwMTg2MGU4N2E5YmExZjE1Li44MzNiYjNl
ZTM1OWQxYmI4ODRiZjc5OWU5NTlhZmVhNTk0Nzc4NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVB
ZGFwdGVyUHJveHkuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViR1BVSWRl
bnRpZmllciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKLSAgICB2b2lk
IHJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+KT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiwg
V1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiYmKT4mJikgZmluYWw7
CiAKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+
KT4+IG1fY2FsbGJhY2tzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcApp
bmRleCAzZmQ4NTczNDc1NGNkYzBlMWMxZDFmMTZjMGE3ZWI1NjQ2MTBmMDI3Li5hMjc5ZDQ2YzFk
ODZjODdiNmNmMWUxOWI4MzBjMjU4OTBiMWIyZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRl
eHR1cmVQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgUmVtb3RlVGV4dHVyZVByb3h5Ojp+UmVt
b3RlVGV4dHVyZVByb3h5KCkKIHsKIH0KIAotUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4g
UmVtb3RlVGV4dHVyZVByb3h5OjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8UEFM
OjpXZWJHUFU6OlRleHR1cmVWaWV3PiBSZW1vdGVUZXh0dXJlUHJveHk6OmNyZWF0ZVZpZXcoY29u
c3Qgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVz
Y3JpcHRvcikKIHsKICAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CiAgICAgcmV0dXJuIFJl
bW90ZVRleHR1cmVWaWV3UHJveHk6OmNyZWF0ZShtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVRleHR1cmVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmgKaW5kZXggNWZhZDgxYjZiZDk0ZGQ5NGVl
ODQ0ZTgwNTIxODVlN2ZlNDljODVlMS4uYTM4Y2YzNDNmMzlkZTM1ODFlNmU0YTkxNjI5ZThhMmNl
ODk0YTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmgKQEAgLTU5LDcgKzU5
LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkdQVUlkZW50aWZpZXIgYmFja2luZygpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2luZzsgfQogCi0gICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4g
Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rl
c2NyaXB0b3I+JikgY29uc3QgZmluYWw7CisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmll
dz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmll
d0Rlc2NyaXB0b3I+JikgZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsKIAo=
</data>
<flag name="commit-queue"
          id="469644"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444588</attachid>
            <date>2021-11-17 15:25:01 -0800</date>
            <delta_ts>2021-11-17 15:50:45 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233247-20211117152500.patch</filename>
            <type>text/plain</type>
            <size>463828</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlOTU1YzRk
MzViZmFiZjA1YzU1NmIxZmM1NGJjZTBjMmY0NmYzOWZlLi4yMjA4ZTBjYmQ1NWE0MWI4MTE1ZmMx
NmE3MTBiMDlkNTUwMzY4NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAor
MjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
dG8gdGhlIGVudW0gY2xhc3Nlcywgc28gdGhleSBjYW4gYmUgc2VyaWFsaXplZC4KKworICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHA6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6QWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2UpOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oOgorICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaDoKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg6CisgICAgICAgICogcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVMb2FkT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU1hcE1vZGUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
U3RhdGlzdGljTmFtZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93
ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNv
ZGVyLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RvcmFnZVRleHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0b3JlT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3Qu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24u
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lv
bi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oOgor
CiAyMDIxLTExLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQXBwbGUgUGF5XSBoYW5kbGUgdW5rbm93biBzZXR1cCBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
ZjkzNmE3MzIxN2Y4NmI1NDU3NTU5Y2VkOTRiN2MzMDc4MTMzNDU2Li41YWNlMjVlOTg5MDA0MmEx
Yzg1NWY5M2M2NWQyYTQzOGU0YzQxMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MCBAQAorMjAy
MS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIGNsYXNzZXMgaW4gR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUgdG8gcmVjZWl2ZSBXZWJHUFUncyBJUEMgbWVzc2FnZXMu
CisgICAgICAgIEVhY2ggb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGFuIGFzc29jaWF0ZWQgbWVz
c2FnZXMuaW4gZmlsZS4gRWFjaCBvZiB0aGVzZSBvYmplY3RzCisgICAgICAgIGhvbGRzIGEgYmFj
a2luZyBQQUw6OldlYkdQVSBvYmplY3Qgd2hpY2ggaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlv
bi4gVGhlIG1ldGhvZHMKKyAgICAgICAgdGhhdCByZWNlaXZlIHRoZSBJUEMgbWVzc2FnZXMgYXJl
IGN1cnJlbnRseSB1bmltcGxlbWVudGVkLCBidXQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoCisgICAg
ICAgIHRoZXknbGwganVzdCBmb3J3YXJkIG9uIHRoZSBjYWxscyB0byB0aGVpciBiYWNraW5nIFBB
TDo6V2ViR1BVIG9iamVjdC4KKworICAgICAgICBUaGlzIGFsc28gYWRkcyBzZXJpYWxpemF0aW9u
IHJvdXRpbmVzIGZvciBhbGwgdGhlIHN0cnVjdHMgaW4gU2hhcmVkL1dlYkdQVS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgKHlldCku
IFdlJ3JlIHZlcnkgY2xvc2UsIHRob3VnaCEhISEKKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5
LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUFkYXB0ZXI6On5SZW1vdGVBZGFwdGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCaW5kR3JvdXA6OlJl
bW90ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6flJlbW90
ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6c2V0TGFiZWwp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QmluZEdyb3VwLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmguCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cExheW91dDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0Ojp+UmVtb3RlQmluZEdyb3Vw
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0OjpzZXRMYWJl
bCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZlcjo6UmVtb3RlQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQnVmZmVyOjptYXBBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUJ1ZmZlcjo6dW5tYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVBy
b3h5LmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVDb21tYW5kQnVmZmVyOjpSZW1vdGVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
Q29tbWFuZEVuY29kZXI6OlJlbW90ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJl
VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmZpbGxC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cHVzaERlYnVn
R3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdH
cm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1
Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRp
bWVzdGFtcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmluaXNo
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OnNldExhYmVsKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21t
YW5kRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjp+UmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmRpc3BhdGNoSW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRl
UGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1
Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjppbnNl
cnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGlu
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNv
bXB1dGVQaXBlbGluZTo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZS5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURldmljZTo6UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNl
Ojp+UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
ZXZpY2U6OmltcG9ydEV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURl
dmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2
aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1
dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRl
UmVuZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3Jl
YXRlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OnB1c2hFcnJvclNj
b3BlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0
dXJlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVFeHRlcm5hbFRleHR1
cmU6OlJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4dGVy
bmFsVGV4dHVyZTo6flJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUV4dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVHUFUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVTo6
UmVtb3RlR1BVKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjp+UmVtb3RlR1BVKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91
dDo6UmVtb3RlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGlu
ZUxheW91dDo6flJlbW90ZVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5
U2V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6UmVt
b3RlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6flJlbW90ZVF1
ZXJ5U2V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVR
dWV1ZTo6UmVtb3RlUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6flJlbW90
ZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OnN1Ym1pdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UXVldWU6OndyaXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpjb3B5
RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpz
ZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVldWUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlOjpSZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6On5SZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpz
ZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6
OnNldEluZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXI6OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6On5SZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxSZWZlcmVuY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5PY2NsdXNp
b25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjplbmRP
Y2NsdXNpb25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjpSZW1vdGVSZW5kZXJQaXBl
bGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0
QmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGlwZWxpbmU6
OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQaXBlbGluZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2Rl
LmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTaGFk
ZXJNb2R1bGU6OlJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNo
YWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2hhZGVyTW9kdWxlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
dXJlOjp+UmVtb3RlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6OmNy
ZWF0ZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVWaWV3LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6UmVtb3RlVGV4dHVyZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6flJlbW90ZVRleHR1cmVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZVZp
ZXc6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpPYmplY3RIZWFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21C
YWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Qmlu
ZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21w
dXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9tQmFja2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5
b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNv
bnZlcnRRdWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmpl
Y3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZy
b21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0
UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVG
cm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVy
dFRleHR1cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaDogQWRkZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkJsZW5kU3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Qmxl
bmRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJp
bmRpbmcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkNvbG9yRGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b2xvckRpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRh
cmdldFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1h
bmRFbmNvZGVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkRlcHRoU3RlbmNpbFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkRlcHRoU3RlbmNpbFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRldmlj
ZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGV2
aWNlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUVy
cm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVudDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0REaWN0OjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNERGljdDo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkZyYWdtZW50U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6RnJhZ21lbnRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXI6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VD
b3B5VGV4dHVyZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weVRleHR1cmVUYWdnZWQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Oklt
YWdlQ29weVRleHR1cmVUYWdnZWQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZURh
dGFMYXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VE
YXRhTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjJERGljdDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9yaWdpbjNERGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpPcmlnaW4zRERpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok91dE9mTWVtb3J5RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T3V0T2ZNZW1vcnlFcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpQaXBlbGluZURlc2NyaXB0b3JCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpRdWVyeVNldERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rl
ckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVu
ZGVyUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0xheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQ
YXNzTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9uczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRv
cjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3Rh
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
RmVhdHVyZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9y
dGVkRmVhdHVyZXM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
TGltaXRzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRl
ZExpbWl0czo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVC
aW5kaW5nTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlw
dG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNj
cmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNj
cmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVW
aWV3RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZh
bGlkYXRpb25FcnJvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlZlcnRleFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZUFkYXB0ZXJQcm94eTo6cmVxdWVzdERldmljZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQ
cm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZVRleHR1cmVQ
cm94eTo6Y3JlYXRlVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlVGV4dHVy
ZVByb3h5OjpjcmVhdGVWaWV3IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5Lmg6CisKIDIwMjEtMTEtMTcg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9tZW50
dW0gYW5pbWF0b3Igc29tZXRpbWVzIHN0YXJ0cyB0aGUgYW5pbWF0aW9uIGF0IGEgdmVyeSBoaWdo
IHZlbG9jaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCmluZGV4IGM0ODA1ZGQ5
ODYxMTk3ZWU5NWU1MzZmM2I1MGY1N2RhNjQ2OWFhMTQuLjIzZjVjOWFjZjA5MWRkODdkMzM1MDkw
MWY0NWVhMDU2ZjJmY2ExYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBA
IC0xNDUsNyArMTQ1LDcgQEAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3RE
ZXZpY2VTdGF0dXMgc3RhdHVzLCBXR1BVRGV2aWNlIGRldmljZSwgY28KICAgICBhZGFwdGVyLT5y
ZXF1ZXN0RGV2aWNlQ2FsbGJhY2soc3RhdHVzLCBkZXZpY2UsIG1lc3NhZ2UpOwogfQogCi12b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+JiYgY2FsbGJhY2spCit2b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwuaAppbmRleCAzNDkyNGFjNjg5Yjc5OWY2OWY0OGYxNmY0ZjAxNWVkOWM1NzAxNDA4Li5lODRl
ZDRhODViNmJjM2U0MjEzZDgzN2Q5MThhN2MxNmRmOTgyYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVB
ZGFwdGVySW1wbC5oCkBAIC01OCw5ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0
RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNj
cmlwdG9yJiwgV1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OmZ1bmN0aW9u
PHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpmdW5jdGlv
bjx2b2lkKFJlZjxEZXZpY2U+KT4+IG1fY2FsbGJhY2tzOworICAgIERlcXVlPFdURjo6ZnVuY3Rp
b248dm9pZChSZWY8RGV2aWNlPiYmKT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV0dQVUFkYXB0ZXIg
bV9iYWNraW5nIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4dD4g
bV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29u
dmVydFRvQmFja2luZ0NvbnRleHQuaAppbmRleCAzMWY0NTRiYmRkNDlhNzliYzM3ZmNiODcxMzk0
NjU5Y2ZlZDBkOTJjLi4zYzliNWM3YjRkNTgzZDJhNjcyOGJiZDcyNzNiNWJiMjYwYzYyZDM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKICNpbmNsdWRl
ICJXZWJHUFVUZXh0dXJlVXNhZ2UuaCIKICNpbmNsdWRlIDxXZWJHUFUvV2ViR1BVLmg+CisjaW5j
bHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oCmluZGV4IDJiMThmOWI2
OGQyM2ZiYmIwZTM4MjkzYTFjOTVlMGNmNTk3YTk2NmQuLjMzODNlYTEzNjk0Y2M5ZjA3OTQ1MzBl
MDhiMGIyYzI0YTU2Y2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVVGV4dHVyZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIFdHUFVUZXh0dXJlIGJhY2tpbmcoKSBjb25zdCB7
IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsK
KyAgICBSZWY8VGV4dHVyZVZpZXc+IGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JikgZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oCmluZGV4IGUyZDljNjFkMGVmY2Y1YTZmYzMzN2JkNmFjZDkxOWNlOTEyYmUw
NzEuLjUwN2M0YWFjNDc2ZDgxYmUzNTI5YTM4Yjg5MTY1NjE1ZTA4NjRkZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVy
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRz
KCkgY29uc3QgeyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8RGV2aWNlPik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmlj
ZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+
JiYpPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBZGFwdGVyKFN0cmluZyYmIG5hbWUsIFN1
cHBvcnRlZEZlYXR1cmVzJiBmZWF0dXJlcywgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMsIGJvb2wg
aXNGYWxsYmFja0FkYXB0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaAppbmRleCA2N2JhZDViOWRmODk1
NGE0MDRmOTcwZGZmOWU1MzBhZWFhNTc3Y2QxLi40Y2FkZmE2NWRkNzAwY2MwYTFhNTlmYzRkMGJj
MjkzMjU3ODI4ZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkZHJlc3NNb2RlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVt
IGNsYXNzIEFkZHJlc3NNb2RlIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGUsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpBZGRy
ZXNzTW9kZTo6UmVwZWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJv
clJlcGVhdAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rv
ci5oCmluZGV4IGZlZDVlODFlNjgzYTg1ODg1ODk5OTc0YjRhNmQ0OGI3NDFhODQ0ZDguLjIwMjJi
ODA3MmJiNzRkNzBiZjQ5Y2ViMWU5YWY2OGE2Njk5ZTEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3Iu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTQ2LDMgKzQ3LDI2IEBAIGVudW0gY2xhc3MgQmxlbmRGYWN0b3IgOiB1aW50OF90IHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3RvciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvLAorICAgICAgICBQ
QUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6Ok9uZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5k
RmFjdG9yOjpTcmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNT
cmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGEsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNTcmNBbHBoYSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3Rvcjo6T25lTWludXNEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6RHN0
QWxwaGEsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNEc3RBbHBo
YSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpTcmNBbHBoYVNhdHVyYXRlZCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpDb25zdGFudCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50CisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kT3BlcmF0aW9uLmgKaW5kZXggMWY2MDBjOGRh
YmNhYTc1NzAzMGQ1NzIxOTM4ZjQwZDY0MTFhZjIyMC4uODZhMGI5ZGQ5YzM2OGEzOTU0YmYyNzRm
MWUxZDE5OTU2MTNlYTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzks
MTggQEAgZW51bSBjbGFzcyBCbGVuZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9u
LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OkFkZCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpTdWJ0cmFjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkJsZW5kT3BlcmF0aW9uOjpSZXZlcnNlU3VidHJhY3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpC
bGVuZE9wZXJhdGlvbjo6TWluLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246
Ok1heAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nVHlwZS5oCmluZGV4IDBhMGFkNjZiMDFkNDM2MGE5NzhhNzBhZTA4NTZjYTk1ZjkxN2Uz
ZDcuLjQ0MWI3MjhkNmE0MjAyOTY5ZTE3MDJhY2QzMjNhZDVkNzU3Zjg0YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyQmluZGluZ1R5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQnVmZmVy
QmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BV
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6
V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlOjpVbmlmb3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6QnVmZmVyQmluZGluZ1R5cGU6OlN0b3JhZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZm
ZXJCaW5kaW5nVHlwZTo6UmVhZE9ubHlTdG9yYWdlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQnVmZmVyVXNhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmgKaW5kZXggNTQwMTFmNDMzNzE1ZTRkYjE5ZTJiMGFh
YjVlMjgxYzg3NzEwYjM1Mi4uZDU1ZWNmYzQ2NWRjNTg4NjMzZDdjMmNlNDQ1NDE3OGU2MzhhNmEz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyVXNhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCiB1c2luZyBCdWZmZXJVc2FnZUZsYWdzID0gdWludDMyX3Q7Ci0KIGNsYXNz
IEJ1ZmZlclVzYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8QnVmZmVyVXNhZ2U+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgTUFQX1JFQUQgICAgICA9IDB4MDAw
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCmluZGV4
IDA5MWNhZGFiNDEyNDk3YzljOGQ0N2YzMDU4YjQ1OGM0NjdhYWNiMDMuLjQ0ODQyZmMzOWY5ZGRm
MzA5ZTgyOWMxMTI5YmY0YTBiMGRkNGViYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3Np
dGluZ0FscGhhTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxw
aGFNb2RlOjpPcGFxdWUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0Fs
cGhhTW9kZTo6UHJlbXVsdGlwbGllZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXBhcmVGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKaW5kZXggNmNiZWEzZDU4NDY5NGIwNDQzZGU3YmQ0
NWI2ODQ1YTcwYjQ5OTM1OC4uYjhlNzQxYjdkYjAzNjU3NjI2YTI5ZDI3N2U5YjA0NWUxNGZiNzY5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGFyZUZ1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5o
PgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC00MSwzICs0MiwyMSBAQCBlbnVtIGNs
YXNzIENvbXBhcmVGdW5jdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246Ok5ldmVyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6Q29tcGFyZUZ1bmN0aW9uOjpMZXNzLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1
bmN0aW9uOjpFcXVhbCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyLAor
ICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlckVxdWFsLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpBbHdheXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgKaW5kZXgg
YTQ2MzUyNDQxZWE3N2RkYTIyZGJjZjJjODIxMWU0YzkwZTkzYTQyOS4uM2EyZjA1MGIyNzQyMmIz
NzI2YzQzZDNkZTkzM2JmNTFkY2Q0ZWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6
OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQ29tcGlsYXRpb25NZXNz
YWdlVHlwZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yLAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkluZm8KKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cExvY2F0aW9uLmgKaW5kZXggZjA4MTllMDE0Y2Q5ZGRhYmFiZjBlM2JmYjZkM2ZkZGE3MDYwOGJi
Yy4uZWM3MTdiN2NiNWM0OTU2ZWQ2ODMzMDBhNDE4ODM5MjdjMWFhNmU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkJlZ2lubmluZywKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkVuZAorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oCmluZGV4IDhlNTI3N2JmZjliZjBl
NTYxMjhkYWNkZGY5NjgxZDY3OWQ3ZTQ5MzIuLjRjODdkMDc3MzkxYWNkNjE1ZDA2MWVmNTkwMWEx
MDVmNzBkODBkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUN1bGxNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAK
IG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3Mg
Q3VsbE1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisK
K25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2Vi
R1BVOjpDdWxsTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpDdWxsTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkN1bGxNb2RlOjpO
b25lLAorICAgICAgICBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkZyb250LAorICAgICAgICBQQUw6
OldlYkdQVTo6Q3VsbE1vZGU6OkJhY2sKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVEZXZpY2VMb3N0UmVhc29uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmgKaW5kZXggYWNkYmZmNmQ4OTQ5YTBlYzI5NmRj
NWVjZjM3NTMyZTJlZmEwM2NmZC4uYjQxZWM0MDQyNTJlNWMyOWZhNzE5N2U5ODlkYzg4MmQzNGM2
YWEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVu
dW0gY2xhc3MgRGV2aWNlTG9zdFJlYXNvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8UEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb24+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbiwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZAorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oCmluZGV4IDgyNmJk
YWI1YmMxZDlmODU1YTlmOTEyZDAyYzllYzQ1NGVhOWRkNDAuLmVlZGQ4NzE0ZDQ4ZDE3M2M5MDU3
NTM5YzI5OGExZmRmMDA2ODA2OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgRXJyb3JGaWx0ZXIgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcj4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkVycm9yRmlsdGVyOjpWYWxpZGF0aW9uCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRmVhdHVyZU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZlYXR1cmVOYW1lLmgKaW5kZXggMGQ1ODcwYmM4MDkxMGJjNTkzYWZhZmRjNDAz
ZDRlOTk4ZWI0OTFkMi4uNmEzMzU4OWQ4OTQ5ZmE4NDc2YzE0ZGI3ZmQzNTg0OWFmZjczZjM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmVhdHVyZU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVGZWF0dXJlTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNDIsMyArNDMsMjIgQEAgZW51bSBjbGFzcyBGZWF0dXJl
TmFtZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6
OkZlYXR1cmVOYW1lPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5h
bWU6OkRlcHRoQ2xpcENvbnRyb2wsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgzMmZsb2F0U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uQmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uRXRjMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVO
YW1lOjpUZXh0dXJlQ29tcHJlc3Npb25Bc3RjLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVy
ZU5hbWU6OlRpbWVzdGFtcFF1ZXJ5LAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6
OkluZGlyZWN0Rmlyc3RJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUZpbHRlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZpbHRlck1vZGUuaAppbmRleCA4YmM4ODEyMjA1Y2U4MmI1Yzg0Y2E3ZTRiNTUxMzJhNmFk
MTY0OGU3Li4xYWZiM2ZhNWU1MTJmZWVlMDA5NmMxZTFhOWNhMjAxY2M5ZGEzY2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJN
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmlsdGVyTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBGaWx0ZXJNb2RlIDogdWlu
dDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RmlsdGVyTW9k
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BV
OjpGaWx0ZXJNb2RlLAorICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVyTW9kZTo6TmVhcmVzdCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkZpbHRlck1vZGU6OkxpbmVhcgorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKaW5kZXggN2MzYTA5NTZiM2Q1NTZlMWMz
YzJlZjZiZDE5ZjEzYTlkOGU1OTBhNy4uZmY2NWIxMDA3ZWQzOTJhNjFjZDViMDM0YzA2MmMyYmU2
MTI1MzdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRnJvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNSwzICszNiwxNSBAQCBlbnVtIGNsYXNzIEZy
b250RmFjZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkZyb250RmFjZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpGcm9udEZhY2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGcm9udEZhY2U6
OkNDVywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZyb250RmFjZTo6Q1cKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
LmgKaW5kZXggNjdhZmU4MTFlYjhkODhiYmMyYThiYjllZTQ1OGNiZDBkMTYwZWZjNC4uOTU1ZjA5
N2RjZjAwZDQwMWQwMDk2MDc4MGZhM2IyNjY4Y2U1ZjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6
dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBz
b3VyY2U7CisgICAgLy8gRklYTUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9u
YWw8T3JpZ2luMkQ+IG9yaWdpbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbmRleEZvcm1hdC5oCmluZGV4IGU2ZDRi
Y2IzMjNjYWI1Yzc1YjczMGIwMjhjMzU4M2M3ZmI2MGViYTYuLmFkOTU2ZTcyZGQ4Nzc3NDIxNWQ1
Yjk4NjU3NGUxNmVlODZhMTAwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgSW5kZXhGb3JtYXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0OjpVaW50MTYsCisgICAgICAgIFBBTDo6V2ViR1BVOjpJ
bmRleEZvcm1hdDo6VWludDMyCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTG9h
ZE9wLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2Fk
T3AuaAppbmRleCBkODFmODlmMDllOWI2NmE3M2IxNjIxMTY5ZjQ2YWEyNDdlZWVlOTRjLi5kYzgy
NjBkNzMzMGQ2OGQ4NDg1ZWE3NjlmMmQwZWMwZWE1OTAxNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMg
KzM1LDE0IEBAIGVudW0gY2xhc3MgTG9hZE9wIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6TG9hZE9wPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkxvYWRPcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkxvYWRPcDo6TG9hZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaAppbmRleCA2Y2QxOWQ1Mzc2ZWY3MWJkMzUxMDU1YjkyMTMzYmQzMWI2YjJlOWE4Li5mMTdm
Yzc3NjM1YmZmZWY3MjA2MTNjZTVjMDNjZGIwMzA1OTE4YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oCkBAIC0z
Miw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiB1c2luZyBNYXBNb2RlRmxh
Z3MgPSB1aW50MzJfdDsKLQogY2xhc3MgTWFwTW9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1hcE1v
ZGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgUkVBRCAg
PSAweDAwMDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCmluZGV4IDJl
OGFlZWE5Mjk3YTczZWEyYThmY2VlNDFhNTc3MDgxOTAwNmQ5OTQuLmJmOTNmNjc5MDA0YWRjNjAz
MDc1OWU1ZWMzOTM3OGFkZDVkOTRjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlz
dGljTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQaXBlbGluZVN0YXRpc3RpY05h
bWUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQ
aXBlbGluZVN0YXRpc3RpY05hbWU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lLAorICAgICAgICBQQUw6
OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9ucywK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6Q2xpcHBlckludm9j
YXRpb25zLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlw
cGVyUHJpbWl0aXZlc091dCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGlj
TmFtZTo6RnJhZ21lbnRTaGFkZXJJbnZvY2F0aW9ucywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lU3RhdGlzdGljTmFtZTo6Q29tcHV0ZVNoYWRlckludm9jYXRpb25zCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93ZXJQcmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAppbmRleCAx
NjUzNWM2MWZiMTRiMmMwMmY2MDMyZGNkOWNjMjgwYzk0YTYxMjQwLi4zMDYwODk3Y2Y5ZWEzMmQ0
NzJkYTg2Mjg2ZWE1Njg5ODI0NzBmZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAg
LTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBv
d2VyUHJlZmVyZW5jZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6TG93
UG93ZXIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3Jt
YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNw
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oCmluZGV4IDk0MzAwODA0MDAyYTZjMDJkMThlZTcxYzVhODMzMWM3
MDBhZGZkNTcuLmZhN2QxZTFlZjViYzM4MmU1M2I3ZjdjZjI1MzZmMzRkZDI5ODUxZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRl
ZmluZWRDb2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0g
Y2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29s
b3JTcGFjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdC
CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVRv
cG9sb2d5LmgKaW5kZXggZTRkMGYyYWUyMmJjNjQ1YzQwMzJhNjk1MWZhNDVkNzUzYTVhZTYwYy4u
YjUwY2Y5MzA0YWIyZTE0MjQwZThhNzQ4ZDRhMDY5NjNkNGQ2ZjZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
cmltaXRpdmVUb3BvbG9neS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQcmltaXRpdmVU
b3BvbG9neSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5LAorICAgICAgICBQQUw6Oldl
YkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlBvaW50TGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lTGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1p
dGl2ZVRvcG9sb2d5OjpMaW5lU3RyaXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVU
b3BvbG9neTo6VHJpYW5nbGVMaXN0LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9w
b2xvZ3k6OlRyaWFuZ2xlU3RyaXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWVyeVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oCmluZGV4IDA1OTFmYjM1NDZhZmU2MzMwOWE3OTY3ZDVmOTA0MDlkODc3MWQ1
NGUuLmNjMzBkNDg4M2ZmMmRlMDZlZDlkOGJjOGM5OTJjNWRiODFjNjNkZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5
VHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBRdWVyeVR5cGUgOiB1aW50OF90IHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlU
eXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlUeXBlOjpPY2NsdXNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU6OlBpcGVsaW5lU3RhdGlzdGljcywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlF1ZXJ5VHlwZTo6VGltZXN0YW1wCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVF1ZXVlLmgKaW5kZXggZTE2ZTkzZGUxNjgyZTRiNTg5ZjIwYTk0ZWVhZDg2MzlmNjFh
ZmRmMC4uNmY4ZjhmODEwYjhkMDFhMTI4YzZiZGVmY2RlMzJjZjVhNDA5MjM4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgogI2luY2x1ZGUgIldlYkdQ
VUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggNWExMGM1ZjIxNjZkMGM1OGI3NDI0
NGZjY2RmODIwNWFjODY1NTZjZC4uMmQ3NWZmY2U4YmI4MTA0NGM5MGZjMDU4MjdlZDA5YzYwYzFi
NWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIldlYkdQVUluZGV4Rm9ybWF0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50
ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIK
KyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmgKaW5kZXggMWU3NmJhNzdiODQwYTEwN2Y2YzExNjEyZTgyNzNiZjMyM2VlNzMyZC4u
NzM1MmVhMWRkOGI5NTNiMjVmNTgyNDY2ZWFhNzc5NmVlNWRmMjJmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29s
b3IuaCIKICNpbmNsdWRlICJXZWJHUFVJbmRleEZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdQVUlu
dGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCBhYjVmYTAxOTg5NmFk
MDQ4ZDc1MjJkMDA5YTM3YjhjMTRkMzNlZWQxLi4yMDM4NzY4ZjQzNTc2YjE3NjE4YjQyMzdiNzJk
OWE5MzcwMjFmMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
TG9jYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUmVuZGVyUGFzc1RpbWVzdGFt
cExvY2F0aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2Nh
dGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6
QmVnaW5uaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0
aW9uOjpFbmQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oCmluZGV4IDE4Y2FkYzBlMDcwNjA3YTQ0MTUyMjIxN2QxMjFmYjVi
NDEwMmZmMDAuLmE0OTJjZTY2ZGY1YTEzNGQwZTA4ZmEzNTQxODQ2ODJjMjczYzNmMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBTYW1wbGVyQmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlLAor
ICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlOjpGaWx0ZXJpbmcsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU6Ok5vbkZpbHRlcmluZywKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbgorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaAppbmRl
eCA5MDY5YmI3ZWYyZDQyZGU2ZDc5YmNiODFkYTNhNzE5NDQzMDJlNDQ5Li5iYTBjNmY1NmJlODk1
ODk0ZWJhOWJlYjI0N2ZlOWU3MzA3OTEzMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsK
IApAQCAtNDEsMyArNDIsMjEgQEAgZW51bSBjbGFzcyBTdGVuY2lsT3BlcmF0aW9uIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbjo6S2VlcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm8s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW52ZXJ0LAorICAgICAgICBQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50Q2xhbXAsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRDbGFtcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb246OkluY3JlbWVudFdyYXAsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRXcmFwCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgKaW5kZXggNzJi
NzY4MTVjZGVjYTA3NGY1Yjg0ZWE4MjUwMDllMmM5ZDc1ZTgxNi4uZTQ3ZTdiOWY0YTkxMDdmNGY4
ZjEyMTYzZjJlNzFhZjk2MjQxNjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBTdG9yYWdlVGV4dHVyZUFjY2VzcyA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzLAorICAgICAgICBQQUw6OldlYkdQ
VTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M6OldyaXRlT25seQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaAppbmRleCA5NzBjYmZiZGQyZWYzNDViODkwOWJmYzVmYzY3
NTYwMzc1ODkzZDIxLi45OTQ0ZDhiYzIwMjkxY2RlODg1ZjI0YWI1YjJkOTgzNWY3ZDc0NGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
dG9yZU9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmVPcC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBTdG9yZU9wIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RvcmVPcD4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9y
ZU9wLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcDo6U3RvcmUsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTdG9yZU9wOjpEaXNjYXJkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oCmluZGV4IDA1YzkyZWUwOGNiYmU3NDhjMGY2MWNlNTU3NTU0NGYzYjk4NDM2
YjcuLmQ1MmVkMTJhODIxMjNkMDE3NDdhNmY1NTc0Nzg4NTcyMDZhYTc1NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBzZXRMYWJlbEludGVybmFsKG1f
bGFiZWwpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUmVmPFRleHR1cmVWaWV3PiBjcmVhdGVWaWV3
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlv
bmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oCmluZGV4IDc5YmVhMGNkOGMxN2U5
YzE4NjA0ZjQxMTVjZWMxZDhjYWQ4YTViYmEuLjU2MThjZmViNzUxODlkZDNiNmNkNmNkMzg0ODkz
YThhZDY1YWNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRy
YWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBl
bnVtIGNsYXNzIFRleHR1cmVBc3BlY3QgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0PiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0OjpBbGwsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlQXNwZWN0OjpTdGVuY2lsT25seSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVB
c3BlY3Q6OkRlcHRoT25seQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVEaW1lbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmVEaW1lbnNpb24uaAppbmRleCA0NzU0MTA3ZWU1YjM4MTljYzljODJmODQ3ZGU2
YmM0Y2RlMGQxOWRmLi41M2EyZTc5ZWNlN2IwNTJlOWE1ZGY0NjIxZDU0MDIzYjI5ZjM0NTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGltZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBUZXh0dXJlRGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZURpbWVuc2lvbjo6XzJkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZURp
bWVuc2lvbjo6XzNkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZv
cm1hdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZUZvcm1hdC5oCmluZGV4IDNjOGFhNmM0ODUzYTg1NDAyODZlMzgwYjE5ZmNmMTYxN2ZhMzJk
NWYuLjYyNTk0NjAwNWYwZTg2M2FmOTAzMjgxNjViMzg4OTEyZGQ3NTAyNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3Jt
YXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRm9ybWF0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCkBAIC0xNTMsMyArMTU0LDEwOCBAQCBlbnVtIGNsYXNzIFRleHR1cmVGb3Jt
YXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Ujhz
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4dWludCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c2ludCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OlIxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2
ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzh1bm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnOHNub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OlJnOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpSMzJ1aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMyc2ludCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpSZzE2c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnMTZmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YmE4dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVub3Jt
U1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm0sCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpSZ2I5ZTV1ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpS
Z2IxMGEydW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzExYjEw
dWZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMnVpbnQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzMyc2ludCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMzJmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OlJnYmExNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSZ2JhMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
UmdiYTE2ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1
aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTMyc2ludCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpEZXB0aDE2dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0OjpEZXB0aDI0cGx1cywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkRlcHRoMjRwbHVzU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpEZXB0aDMyZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpC
YzFSZ2JhVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2Jh
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVu
b3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3JtU1JH
QiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0IsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSVW5vcm0sCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSU25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpCYzVSZ1Vub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6QmM1UmdTbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJj
NmhSZ2JVZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzZoUmdi
RmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm0s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjh1bm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtU1JHQiwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2JhOHVub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYmE4dW5vcm1TUkdCLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RWFjUjExdW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpFYWNSMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkVhY1JnMTF1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkVhY1JnMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFz
dGM0eDRVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM0eDRV
bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5v
cm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5vcm1TUkdC
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtU1JHQiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QXN0Yzh4NVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkFzdGM4eDZVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkFzdGM4eDZVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpB
c3RjOHg4VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg4
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVV
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1T
UkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybSwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg2VW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDhVbm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDEwVW5vcm0sCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4MTBVbm9ybVNSR0IsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTJ4MTBVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEyVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDMyZmxvYXRTdGVuY2lsOAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDM4
ZGQzNGRkOTMyZDI0YWYxZGJlOWM0MmRmMmU5ZDcwYmQ1ZDhiZDcuLjM0YTAxY2FiMjBhNTI1NGUw
MGIzMzgyODhiY2EyNjA5NzQwM2ViZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTM4LDMgKzM5LDE4IEBAIGVudW0gY2xhc3MgVGV4dHVyZVNhbXBsZVR5cGUgOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlU2FtcGxlVHlwZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1w
bGVUeXBlOjpGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpV
bmZpbHRlcmFibGVGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBl
OjpEZXB0aCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OlVpbnQKKyAgICA+OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24u
aAppbmRleCBiMzVjMDQwMjNmMWRjNjhiMWFhZWVkODRlYjRiZTVjNWVmNTUzM2I5Li5kMzZlZTQ1
YzhhODY1MGU0YTZhMTNiZTcyNDllZTMzOGIzZDAzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGltZW5zaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewogCkBAIC0zOSwzICs0MCwxOSBAQCBlbnVtIGNsYXNzIFRleHR1cmVWaWV3
RGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3RGltZW5zaW9uOjpfMmRBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uOjpDdWJlLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdE
aW1lbnNpb246OkN1YmVBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGlt
ZW5zaW9uOjpfM2QKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3Jt
YXQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCmluZGV4IDk0ZWFjNDEzOGExNmU5ZWU2ZGRlMDA4NmExOGM3NjZiY2NjNDk3OWMu
LjJhMDEzNTM0Y2NkMzExYWU4MTcwY2ViMjZiZGNkYTMyMGI1NjU5NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtNjMsMyArNjQsNDMgQEAgZW51bSBjbGFzcyBWZXJ0ZXhGb3JtYXQgOiB1aW50
OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50
OHgyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHg0LAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50OHgyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0OjpTaW50OHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9y
bWF0OjpVbm9ybTh4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm04
eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHgyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTh4NCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdDo6VWludDE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OlVpbnQxNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50
MTZ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDE2eDQsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4MiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm0xNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVy
dGV4Rm9ybWF0OjpTbm9ybTE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNub3JtMTZ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNngy
LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDE2eDQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzIsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZv
cm1hdDo6RmxvYXQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9h
dDMyeDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyeDIsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4
Rm9ybWF0OjpVaW50MzJ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2lu
dDMyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzJ4MiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDMsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQzMng0CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmgKaW5kZXggNjRkMTJjOTgwODdlOGI1NDY4Yzdk
OTkzNDIwNDg3MTQ2MzQ5MzMxOS4uNDFiMzA2OWNmMGJmMzQ5YzY3MWMxMWNkZjhiZDFlYmFmM2Yz
OWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBj
bGFzcyBWZXJ0ZXhTdGVwTW9kZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU6OlZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlZlcnRleFN0ZXBNb2RlOjpJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTFVuaXRUZXN0cy9XR1NMVW5pdFRlc3Rz
Lm1tIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KaW5kZXgg
NzNkN2M3ZGM3OWJlNGZjYzBmZDA3ZTg1ODNhZjcwZDA4YmYwYzgxOC4uZjM3NGJhZDYzMzk0Yzcz
Zjg5OWVhZjVkNmRiZmIwY2E2YjdkZmM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XR1NM
VW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KKysrIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRl
c3RzL1dHU0xVbml0VGVzdHMubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8WENUZXN0
L1hDVGVzdC5oPgogI2ltcG9ydCA8dmVjdG9yPgorI2ltcG9ydCA8d3RmL0RhdGFMb2cuaD4KICNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogQGludGVyZmFjZSBXR1NMVW5pdFRlc3RzIDogWENUZXN0
Q2FzZQpAQCAtMzQsNiArMzUsNyBAQAogQGltcGxlbWVudGF0aW9uIFdHU0xVbml0VGVzdHMKIAog
LSAodm9pZCl0ZXN0RXhhbXBsZSB7CisgICAgZGF0YUxvZygiYXNkZlxuIik7CiAgICAgVmVjdG9y
PGludD4geCB7IDIsIDMsIH07CiAgICAgVmVjdG9yPGludD4geTsKICAgICB5LmFwcGVuZCgyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDdkNjM0NTM0ZWNlZDk5NzBmOWZlYjZhNmJmYjk0ZDAzODQz
YzAzZjQuLjUxYzQwOGU5MzAyNzcyNDFmMzA0ZTAxOGFmYjk4OGI0NjhiMjExNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtMTM2LDYgKzEzNiwyOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTAogICAg
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogCisgICAgR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJpbmRHcm91cExheW91dAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUJ1ZmZlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRC
dWZmZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rl
cgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZQor
ICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZQorICAgIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZQorICAgIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVBpcGVsaW5lTGF5b3V0CisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVlcnlTZXQKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZQor
ICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZQorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIKKyAgICBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2RlcgorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lCisgICAgR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlVmlldworCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcgogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkKICAg
ICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDNkZjk4YTM1MGQ4ZDQ3NGM1
MjdkOWMyNDkxMTFjNGJlNTBlYmFkNDAuLjc5OWFkNzViMmExYWIyMTBkMDgxZDU5ZmQ1YjRiMDJk
OGI2ZGFlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTI0LDYgKzI0LDI4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHQubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlv
dXQubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNv
bXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMu
aW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVy
bmFsVGV4dHVyZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlR1BVLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXVlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBh
c3NFbmNvZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgorJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxl
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCAxZjI2NjY4NDAwYWY5MjEyZDAwYzcxYWVhMGI1ODVhMDcw
MjNjYjlhLi5hNjVmYzM2MTg0Y2ZmOGY3NzUyZDY4NTI3OTg2MTU0YjZhZjgwMWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2
ICsxNTQsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdlcwogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBZGFwdGVy
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQWRhcHRlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlck1lc3NhZ2VzLmgKQEAgLTE4NSw2ICsxODgsMTUgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJN
ZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJh
Y2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCaW5kR3Jv
dXBMYXlvdXRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdl
c1JlcGxpZXMuaApAQCAtMjA2LDkgKzIxOCwzMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNv
bW1hbmRCdWZmZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kQnVmZmVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRFbmNvZGVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ29tbWFuZEVuY29kZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXJN
ZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZURldmljZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzUmVwbGllcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2Vp
dmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdQVU1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNz
YWdlc1JlcGxpZXMuaApAQCAtMjgyLDEyICszMTUsMzMgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VzUmVw
bGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9i
amVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVQaXBlbGluZUxheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVBpcGVsaW5lTGF5
b3V0TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUXVlcnlTZXRNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVRdWVyeVNldE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVF1ZXJ5U2V0TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1ZXVlTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UXVldWVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVRdWV1ZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVF
bmNvZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2Vz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
bmRlclBhc3NFbmNvZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UmVuZGVyUGlwZWxpbmVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQaXBlbGluZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRNZXNzYWdlc1JlcGxpZXMuaApAQCAtMzAwLDE1ICszNTQsMjcgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWcKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1w
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZXJNZXNzYWdlc1JlcGxpZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVNoYWRlck1vZHVsZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVU
ZXh0dXJlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlVGV4dHVyZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVRleHR1cmVWaWV3TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1ZjVmNDczMDk2M2Ri
Njk1NWVlOWI0MDkzMTNkY2IwNDBmM2M5Njg4Li5kZGU1YzYzZmUzZjRiMzE1Mjk3ZGI0YjY4NDg5
YzI5ZGU1YmJhNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDcsNiArMjQ3
LDI4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlciBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kIFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyIFwKKwlHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAgXAorCUdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVD
b21tYW5kQnVmZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5k
RW5jb2RlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxp
bmUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZSBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIFwKKwlHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVBpcGVsaW5lTGF5b3V0IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVRdWVyeVNldCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUgXAor
CUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZSBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgXAorCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lIFwKKwlHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVTaGFkZXJNb2R1bGUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVRleHR1cmUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3
IFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eSBcCiAJR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBcCiAJR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTA0MDlhOWM0NjE0YTU0NjI0YWZkZmFhYTBlMmYxMzk1ZjQ3NjM1OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBZGFwdGVyLmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgiCisjaW5j
bHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1
cmVzLmgiCisjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZW1vdGVBZGFwdGVyOjpSZW1vdGVBZGFwdGVyKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBhZGFw
dGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYWRh
cHRlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVBZGFw
dGVyOjp+UmVtb3RlQWRhcHRlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQWRhcHRlcjo6cmVxdWVz
dERldmljZShjb25zdCBXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkdQ
VTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYgY2Fs
bGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJB
TShpZGVudGlmaWVyKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEhBVkUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUwZjM3ZTdlNDY3MDk4YTE3NmZlNGM0MDc4MzE0OWEwYzFkMzc3ZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQWRhcHRlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK25hbWVzcGFjZSBXZWJHUFUgeworc3RydWN0IERldmljZURlc2NyaXB0b3I7CitjbGFzcyBP
YmplY3RIZWFwOworc3RydWN0IFN1cHBvcnRlZEZlYXR1cmVzOworc3RydWN0IFN1cHBvcnRlZExp
bWl0czsKK30KKworY2xhc3MgUmVtb3RlQWRhcHRlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVh
bU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVBZGFwdGVy
PiBjcmVhdGUoUEFMOjpXZWJHUFU6OkFkYXB0ZXImIGFkYXB0ZXIsIFdlYkdQVTo6T2JqZWN0SGVh
cCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZUFkYXB0ZXIoYWRhcHRlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJl
bW90ZUFkYXB0ZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsK
KworICAgIFJlbW90ZUFkYXB0ZXIoUEFMOjpXZWJHUFU6OkFkYXB0ZXImLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZUFkYXB0ZXIoY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVs
ZXRlOworICAgIFJlbW90ZUFkYXB0ZXIoUmVtb3RlQWRhcHRlciYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVBZGFwdGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZUFkYXB0ZXImIG9wZXJhdG9yPShSZW1vdGVBZGFwdGVyJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHJlcXVlc3REZXZp
Y2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllciwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2Vi
R1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpBZGFw
dGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTEz
M2FhNmUxY2M2YjUzOWEwNDllNzQ1NjU5M2VmMDM4YTgzNGM4YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQWRhcHRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7
CisgICAgdm9pZCBSZXF1ZXN0RGV2aWNlKFdlYktpdDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9y
IGRldmljZURlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAt
PiAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRlZEZlYXR1cmVzLCBX
ZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0cykgU3luY2hyb25v
dXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcxMGE1
NDU5NWU2YjRiNDIwYWIxMDkyODMzZjcxOGM0OTEyMzBiNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmNw
cApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUJpbmRHcm91cC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCaW5k
R3JvdXA6OlJlbW90ZUJpbmRHcm91cChQQUw6OldlYkdQVTo6QmluZEdyb3VwJiBiaW5kR3JvdXAs
IFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhiaW5kR3Jv
dXApCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQmluZEdy
b3VwOjp+UmVtb3RlQmluZEdyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVCaW5kR3JvdXA6OnNl
dExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVCaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQmluZEdyb3VwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNkMTBkZjQxNTI4YWQxMjJhYWEwM2JlNzZh
NzgwM2FiZDhhYjgxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmgKQEAgLTAsMCArMSw3NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEJpbmRHcm91cDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsK
K30KKworY2xhc3MgUmVtb3RlQmluZEdyb3VwIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVz
c2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUJpbmRHcm91cD4g
Y3JlYXRlKFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmIGJpbmRHcm91cCwgV2ViR1BVOjpPYmplY3RI
ZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3RlQmluZEdyb3VwKGJpbmRHcm91cCwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1
YWwgflJlbW90ZUJpbmRHcm91cCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmpl
Y3RIZWFwOworCisgICAgUmVtb3RlQmluZEdyb3VwKFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmLCBX
ZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUJpbmRHcm91cChjb25zdCBSZW1vdGVC
aW5kR3JvdXAmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAoUmVtb3RlQmluZEdyb3Vw
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KGNvbnN0IFJlbW90
ZUJpbmRHcm91cCYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KFJl
bW90ZUJpbmRHcm91cCYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1l
c3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJH
UFU6OkJpbmRHcm91cD4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1f
b2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZDdmOTQxYWQ2MmM5ODUwNzNlYWJmZDMzYzU1Y2MxZGRmYzNlNmE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUJpbmRHcm91cCBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhj
MGYwZTExZTc3NDllOTk5ZjE0MTY3MWIyNWM4MGMzZDU4NjhjYjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cExheW91dC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVtb3RlQmluZEdyb3VwTGF5b3V0OjpSZW1vdGVCaW5kR3JvdXBMYXlvdXQo
UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYgYmluZEdyb3VwTGF5b3V0LCBXZWJHUFU6Ok9i
amVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYmluZEdyb3VwTGF5b3V0KQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUJpbmRHcm91cExh
eW91dDo6flJlbW90ZUJpbmRHcm91cExheW91dCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQmluZEdy
b3VwTGF5b3V0OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
bGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
ZmRhY2FlYTJhNTQzOWQxY2JlNzFjNmE4ZmIzZTE5YzgxODU4NTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cExheW91dC5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CitjbGFzcyBCaW5kR3JvdXBMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUJp
bmRHcm91cExheW91dCBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShQ
QUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0JiBiaW5kR3JvdXBMYXlvdXQsIFdlYkdQVTo6T2Jq
ZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVCaW5kR3JvdXBMYXlvdXQoKTsKKworcHJpdmF0ZToK
KyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUJpbmRHcm91cExheW91
dChQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisK
KyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgUmVtb3RlQmluZEdyb3VwTGF5b3V0Jikg
PSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0KFJlbW90ZUJpbmRHcm91cExheW91
dCYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmIG9wZXJhdG9yPShjb25z
dCBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBM
YXlvdXQmIG9wZXJhdG9yPShSZW1vdGVCaW5kR3JvdXBMYXlvdXQmJikgPSBkZWxldGU7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5n
JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+IG1fYmFja2luZzsK
KyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwTGF5b3V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdl
Y2QyOTQ2NDk0OGI5Yzk4MjU2MWU3M2ZjMjhiZmU1MjYzNzA2NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisg
KiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQgTm90UmVm
Q291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmMyNmU0YjU4ODllMDgzMTNkNmE3
YjkzZjdlZDE2NGRmNTZlYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQnVmZmVy
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RI
ZWFwLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCdWZmZXI6OlJlbW90ZUJ1ZmZl
cihQQUw6OldlYkdQVTo6QnVmZmVyJiBidWZmZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0
SGVhcCkKKyAgICA6IG1fYmFja2luZyhidWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0
SGVhcCkKK3sKK30KKworUmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKCkKK3sKK30KKwordm9p
ZCBSZW1vdGVCdWZmZXI6Om1hcEFzeW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9k
ZUZsYWdzLCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJB
TShtYXBNb2RlRmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9Q
QVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjp1bm1hcChWZWN0b3I8dWlu
dDhfdD4mJiBkYXRhKQoreworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKK30KKwordm9pZCBSZW1v
dGVCdWZmZXI6OmRlc3Ryb3koKQoreworfQorCit2b2lkIFJlbW90ZUJ1ZmZlcjo6c2V0TGFiZWwo
U3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZm
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNGE0NWE3ZGRhZTdkNDMxODY3NTQwZGUwOTI4OTIyMTBkMzQxNTJk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCdWZmZXIuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVU1hcE1vZGUuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xh
c3MgQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7
CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVCdWZmZXIgZmluYWwgOiBwdWJs
aWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVtb3RlQnVmZmVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkJ1ZmZlciYgYnVmZmVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVCdWZmZXIoYnVmZmVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+UmVtb3RlQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVj
dEhlYXA7CisKKyAgICBSZW1vdGVCdWZmZXIoUEFMOjpXZWJHUFU6OkJ1ZmZlciYsIFdlYkdQVTo6
T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlQnVmZmVyKGNvbnN0IFJlbW90ZUJ1ZmZlciYpID0g
ZGVsZXRlOworICAgIFJlbW90ZUJ1ZmZlcihSZW1vdGVCdWZmZXImJikgPSBkZWxldGU7CisgICAg
UmVtb3RlQnVmZmVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQnVmZmVyJikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQnVmZmVyJiBvcGVyYXRvcj0oUmVtb3RlQnVmZmVyJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIG1hcEFzeW5jKFBBTDo6
V2ViR1BVOjpNYXBNb2RlRmxhZ3MsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4g
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemVGb3JNYXAsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOworICAgIHZv
aWQgdW5tYXAoVmVjdG9yPHVpbnQ4X3Q+JiYpOworCisgICAgdm9pZCBkZXN0cm95KCk7CisKKyAg
ICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QnVmZmVy
PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZWYxMDIx
OGUyOTI0MTllNWFiNzNlYTk0YzA3ODk4ODIwZGY4YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDMzIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlQnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2
b2lkIE1hcEFzeW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzLCBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6U2l6ZTY0PiBzaXplKSAtPiAoVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9u
b3VzCisgICAgdm9pZCBVbm1hcChWZWN0b3I8dWludDhfdD4gZGF0YSkKKyAgICB2b2lkIERlc3Ry
b3koKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29t
bWFuZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YTlkNTkxM2ZkM2U4YzFmZWM2
OTYxYTVhY2YyOGEwMmQ4MjBiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlQ29tbWFuZEJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQ29tbWFu
ZEJ1ZmZlcjo6UmVtb3RlQ29tbWFuZEJ1ZmZlcihQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYg
Y29tbWFuZEJ1ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9i
YWNraW5nKGNvbW1hbmRCdWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sK
K30KKworUmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIoKQoreworfQor
Cit2b2lkIFJlbW90ZUNvbW1hbmRCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQorewor
ICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYTU2ZmJhNmE4YzM2M2I2NjIyNTllNmI2YjUwM2RlNWJjYTU2MDA3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21tYW5kQnVmZmVyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbW1hbmRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNz
IFJlbW90ZUNvbW1hbmRCdWZmZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tbWFuZEJ1ZmZlcj4gY3Jl
YXRlKFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyJiBjb21tYW5kQnVmZmVyLCBXZWJHUFU6Ok9i
amVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdGVDb21tYW5kQnVmZmVyKGNvbW1hbmRCdWZmZXIsIG9iamVjdEhlYXApKTsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyKFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1v
dGVDb21tYW5kQnVmZmVyKGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZmZXImKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVDb21tYW5kQnVmZmVyKFJlbW90ZUNvbW1hbmRCdWZmZXImJikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQ29tbWFuZEJ1ZmZlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZm
ZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyJiBvcGVyYXRvcj0oUmVtb3Rl
Q29tbWFuZEJ1ZmZlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1l
c3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJH
UFU6OkNvbW1hbmRCdWZmZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFw
PiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjhjZTFiZTc2OWIwNTZkZTc2MDNkYjAwNjcwNDQyMTg1
NDE3ZGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAg
QEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1v
dGVDb21tYW5kQnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVs
KFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1YjQzNjQ3ZDg2ZDA5N2YxZmE2MDE1NzIxZWM3Y2Q5NjVhNjFlMzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5kRW5jb2Rlci5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVh
cC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbW1hbmRFbmNvZGVyOjpSZW1vdGVD
b21tYW5kRW5jb2RlcihQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXImIGNvbW1hbmRFbmNvZGVy
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoY29tbWFu
ZEVuY29kZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3Rl
Q29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2RlcigpCit7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6OmJlZ2luUmVuZGVyUGFzcyhjb25zdCBXZWJHUFU6OlJlbmRlclBh
c3NEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQVTo6Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYgZGVzY3Jp
cHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShk
ZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcigKKyAgICBXZWJHUFVJZGVudGlm
aWVyIHNvdXJjZSwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IHNvdXJjZU9mZnNldCwKKyAgICBX
ZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVz
dGluYXRpb25PZmZzZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplKQoreworICAgIFVO
VVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VPZmZzZXQpOworICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9u
T2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFu
ZEVuY29kZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXImIHNvdXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRl
c3RpbmF0aW9uLAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAg
IFVOVVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rl
cjo6Y29weVRleHR1cmVUb0J1ZmZlcigKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1
cmUmIHNvdXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRp
b24sCisgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpCit7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVT
RURfUEFSQU0oY29weVNpemUpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5
VGV4dHVyZVRvVGV4dHVyZSgKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIHNv
dXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAor
ICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAgIFVOVVNFRF9QQVJB
TShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BB
UkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZl
cigKKyAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpT
aXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplKQor
eworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3Rp
bmF0aW9uT2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3Rl
Q29tbWFuZEVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNv
ZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6
aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BB
UkFNKG1hcmtlckxhYmVsKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6d3JpdGVU
aW1lc3RhbXAoV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldCwgUEFMOjpXZWJHUFU6OlNpemUzMiBx
dWVyeUluZGV4KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeVNldCk7CisgICAgVU5VU0VEX1BB
UkFNKHF1ZXJ5SW5kZXgpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQoCisgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldCwKKyAgICBQQUw6OldlYkdQ
VTo6U2l6ZTMyIGZpcnN0UXVlcnksCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUNvdW50
LAorICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgUEFMOjpXZWJHUFU6OlNp
emU2NCBkZXN0aW5hdGlvbk9mZnNldCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlTZXQpOwor
ICAgIFVOVVNFRF9QQVJBTShmaXJzdFF1ZXJ5KTsKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlDb3Vu
dCk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oZGVz
dGluYXRpb25PZmZzZXQpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpmaW5pc2go
Y29uc3QgV2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVu
Y29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJl
bCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNjBlNGIx
Mzg2YTJlM2UwY2RkNTliNzZiZjJmOGY2NjRlYjM4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVy
LmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbW1hbmRFbmNvZGVyOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitzdHJ1Y3QgQ29tbWFuZEJ1ZmZl
ckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yOworc3RydWN0IEltYWdl
Q29weUJ1ZmZlcjsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworY2xhc3MgT2JqZWN0SGVhcDsK
K3N0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRvcjsKK30KKworY2xhc3MgUmVtb3RlQ29tbWFuZEVu
Y29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tbWFuZEVuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQ
VTo6Q29tbWFuZEVuY29kZXImIGNvbW1hbmRFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9i
amVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVDb21t
YW5kRW5jb2Rlcihjb21tYW5kRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZp
cnR1YWwgflJlbW90ZUNvbW1hbmRFbmNvZGVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21tYW5kRW5jb2RlcihQQUw6OldlYkdQVTo6
Q29tbWFuZEVuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUNvbW1h
bmRFbmNvZGVyKGNvbnN0IFJlbW90ZUNvbW1hbmRFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVt
b3RlQ29tbWFuZEVuY29kZXIoUmVtb3RlQ29tbWFuZEVuY29kZXImJikgPSBkZWxldGU7CisgICAg
UmVtb3RlQ29tbWFuZEVuY29kZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21tYW5kRW5jb2Rl
ciYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyJiBvcGVyYXRvcj0oUmVtb3Rl
Q29tbWFuZEVuY29kZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1N
ZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKworICAgIHZvaWQgYmVnaW5SZW5kZXJQYXNzKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGJlZ2luQ29tcHV0ZVBh
c3MoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcj4mLCBX
ZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY29weUJ1ZmZlclRvQnVmZmVyKAorICAgICAg
ICBXZWJHUFVJZGVudGlmaWVyIHNvdXJjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBz
b3VyY2VPZmZzZXQsCisgICAgICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTaXplNjQpOworCisgICAgdm9pZCBjb3B5QnVmZmVyVG9UZXh0dXJlKAorICAgICAg
ICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgc291cmNlLAorICAgICAgICBjb25zdCBX
ZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBXZWJH
UFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZmZXIo
CisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAorICAgICAg
ICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgICAgIGNv
bnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKTsKKworICAgIHZvaWQgY29weVRleHR1cmVU
b1RleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNl
LAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAor
ICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGZp
bGxCdWZmZXIoCisgICAgICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplNjQpOworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExh
YmVsKTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFy
a2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgd3JpdGVUaW1lc3RhbXAoV2Vi
R1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsKKworICAgIHZv
aWQgcmVzb2x2ZVF1ZXJ5U2V0KAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0UXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXpl
MzIgcXVlcnlDb3VudCwKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBkZXN0aW5hdGlvbk9mZnNldCk7CisKKyAgICB2b2lk
IGZpbmlzaChjb25zdCBXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRl
bnRpZmllcik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6
OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmpl
Y3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRF
bmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMGJmMzMxMTQ4ZDJlOTUzMWM1OTdjYjlj
ZGRkNjE3M2I3ZDI5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsNDMgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdl
cyAtPiBSZW1vdGVDb21tYW5kRW5jb2RlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9p
ZCBCZWdpblJlbmRlclBhc3MoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
QmVnaW5Db21wdXRlUGFzcyhzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFz
c0Rlc2NyaXB0b3I+IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQorICAgIHZvaWQgQ29weUJ1ZmZlclRvQnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBzb3VyY2UsIFBBTDo6V2ViR1BVOjpTaXplNjQgc291cmNlT2Zmc2V0LCBXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgZGVzdGluYXRpb24sIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25P
ZmZzZXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKKyAgICB2b2lkIENvcHlCdWZmZXJUb1Rl
eHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciBzb3VyY2UsIFdlYktpdDo6V2Vi
R1BVOjpJbWFnZUNvcHlUZXh0dXJlIGRlc3RpbmF0aW9uLCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50
M0QgY29weVNpemUpCisgICAgdm9pZCBDb3B5VGV4dHVyZVRvQnVmZmVyKFdlYktpdDo6V2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZl
ciBkZXN0aW5hdGlvbiwgV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZv
aWQgQ29weVRleHR1cmVUb1RleHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUg
c291cmNlLCBXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgV2Vi
S2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZvaWQgRmlsbEJ1ZmZlcihXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVz
dGluYXRpb25PZmZzZXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKKyAgICB2b2lkIFB1c2hE
ZWJ1Z0dyb3VwKFN0cmluZyBncm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisg
ICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBX
cml0ZVRpbWVzdGFtcChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpX
ZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgUmVzb2x2ZVF1ZXJ5U2V0KFdlYktp
dDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
UXVlcnksIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlDb3VudCwgV2ViS2l0OjpXZWJHUFVJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0
KQorICAgIHZvaWQgRmluaXNoKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRv
ciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2
b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5j
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1MGE5ZjZkZjAwZjQ1YzFjMjE1
OWZjNjFiMzdjN2JlMjFlZjkwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcApAQCAt
MCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciYgY29tcHV0ZVBhc3NFbmNvZGVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoY29tcHV0ZVBhc3NFbmNv
ZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlcjo6flJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlcigpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyIGNv
bXB1dGVQaXBlbGluZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29tcHV0ZVBpcGVsaW5lKTsKK30K
Kwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmRpc3BhdGNoKFBBTDo6V2ViR1BVOjpT
aXplMzIgeCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB5LCBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHopCit7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAg
IFVOVVNFRF9QQVJBTSh5KTsKKyAgICBVTlVTRURfUEFSQU0oeik7Cit9CisKK3ZvaWQgUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNwYXRjaEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5k
aXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RP
ZmZzZXQpOworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGlu
ZVN0YXRpc3RpY3NRdWVyeShXZWJHUFVJZGVudGlmaWVyIHF1ZXJ5U2V0LCBQQUw6OldlYkdQVTo6
U2l6ZTMyIHF1ZXJ5SW5kZXgpCit7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBV
TlVTRURfUEFSQU0ocXVlcnlJbmRleCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyOjplbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXI6OnNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViR1BV
SWRlbnRpZmllciBiaW5kR3JvdXAsCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJH
UFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIG9mZnNldHMpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0o
b2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwdXNoRGVidWdH
cm91cChTdHJpbmcmJiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVs
KTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQor
eworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIo
U3RyaW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsK
K30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxh
YmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdhZmJkOGU5YzU0ZWY2MjQ3MWZkMDg0ZDMx
MjZmODFmMTI4ZWM1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmgKQEAgLTAsMCArMSw5
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdy
YWxUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbXB1dGVQYXNzRW5j
b2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xh
c3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpDb21w
dXRlUGFzc0VuY29kZXImIGNvbXB1dGVQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBv
YmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyKGNvbXB1dGVQYXNzRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0K
KworICAgIHZpcnR1YWwgflJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlcigpOworCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAm
KTsKKworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcihjb25zdCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5j
b2RlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYpID0gZGVsZXRl
OworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZUNvbXB1dGVQ
YXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3Nh
Z2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCisgICAgdm9pZCBzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
c3BhdGNoKFBBTDo6V2ViR1BVOjpTaXplMzIgeCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPiB5LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+KTsKKyAgICB2b2lk
IGRpc3BhdGNoSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAgICB2b2lkIGJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVy
eUluZGV4KTsKKyAgICB2b2lkIGVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CisKKyAgICB2
b2lkIGVuZFBhc3MoKTsKKworICAgIHZvaWQgc2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRl
eDMyLCBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6
OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYpOworCisgICAgdm9pZCBwdXNoRGVidWdH
cm91cChTdHJpbmcmJiBncm91cExhYmVsKTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAg
ICB2b2lkIGluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZv
aWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFz
c0VuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIu
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZiZDJiNTcyY2JhNTQxMWEyM2MyOWM5N2QwN2NjNmMw
YzBlYzJmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsNDAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisg
KiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAt
PiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZv
aWQgU2V0UGlwZWxpbmUoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBEaXNwYXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB6KQor
ICAgIHZvaWQgRGlzcGF0Y2hJbmRpcmVjdChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJl
Y3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBC
ZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXgpCisgICAgdm9pZCBFbmRQaXBl
bGluZVN0YXRpc3RpY3NRdWVyeSgpCisgICAgdm9pZCBFbmRQYXNzKCkKKyAgICB2b2lkIFNldEJp
bmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJE
eW5hbWljT2Zmc2V0Pj4gZHluYW1pY09mZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChT
dHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5z
ZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZvaWQgU2V0TGFiZWwoU3Ry
aW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YjlkOTA5NDgxOTJjNGJmMDAzNDFjZjhiZTY4ZjQ2ZmRlNGNmZGFjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmUu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbXB1dGVQaXBlbGluZTo6UmVtb3Rl
Q29tcHV0ZVBpcGVsaW5lKFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUmIGNvbXB1dGVQaXBl
bGluZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGNv
bXB1dGVQaXBlbGluZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitS
ZW1vdGVDb21wdXRlUGlwZWxpbmU6On5SZW1vdGVDb21wdXRlUGlwZWxpbmUoKQoreworfQorCit2
b2lkIFJlbW90ZUNvbXB1dGVQaXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGlu
ZGV4LCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
cHV0ZVBpcGVsaW5lOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFS
QU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmViMzQwNDNkNzQ4ZmJmN2VmNmJlYTJiMzJkNTA5ZTZmMGNmMmIwMjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CitjbGFzcyBDb21wdXRlUGlwZWxpbmU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90
ZUNvbXB1dGVQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVDb21wdXRlUGlwZWxpbmU+IGNyZWF0
ZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lJiBjb21wdXRlUGlwZWxpbmUsIFdlYkdQVTo6
T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW90ZUNvbXB1dGVQaXBlbGluZShjb21wdXRlUGlwZWxpbmUsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21wdXRlUGlwZWxpbmUoKTsKKworcHJpdmF0
ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUNvbXB1dGVQaXBl
bGluZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7
CisKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
JikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lKFJlbW90ZUNvbXB1dGVQaXBl
bGluZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxpbmUmIG9wZXJhdG9yPShj
b25zdCBSZW1vdGVDb21wdXRlUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRl
UGlwZWxpbmUmIG9wZXJhdG9yPShSZW1vdGVDb21wdXRlUGlwZWxpbmUmJikgPSBkZWxldGU7CisK
KyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVj
dGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgZ2V0QmluZEdyb3Vw
TGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc2V0
TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+
IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDQ1OWFhNTkyMzQyOTM4MWQzNzYwZjUyZmI2ZTNjNDg3YmJhYzZlMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisg
KiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVDb21wdXRlUGlw
ZWxpbmUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgR2V0QmluZEdyb3VwTGF5b3V0
KHVpbnQzMl90IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzhkMGUxZGNjZmU3ZWQ3NzcyNzY0MTU1NjQ1YjEyMDk1ZmU2ZTgwZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlRGV2aWNlLmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVEZXZpY2UuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlRGV2aWNlOjpSZW1vdGVEZXZpY2UoUEFMOjpXZWJHUFU6OkRldmljZSYgZGV2aWNl
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoZGV2aWNl
KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZURldmljZTo6
flJlbW90ZURldmljZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpkZXN0cm95KCkKK3sK
K30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUJ1ZmZlcihjb25zdCBXZWJHUFU6OkJ1ZmZl
ckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlVGV4dHVyZShjb25zdCBXZWJHUFU6
OlRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIoY29uc3Qg
V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjppbXBvcnRFeHRlcm5h
bFRleHR1cmUoY29uc3QgV2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1v
dGVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXZWJHUFU6OkJpbmRHcm91cExh
eW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50
aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29u
c3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7Cisg
ICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwKGNvbnN0IFdlYkdQVTo6QmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
RGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
VU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJH
UFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5V
U0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0o
ZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJl
bW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7
CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNy
ZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKKyAgICBVTlVTRURfUEFS
QU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlQ29tbWFuZEVuY29k
ZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4m
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBXZWJHUFU6
OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVO
VVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVF1
ZXJ5U2V0KGNvbnN0IFdlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3Ip
OworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6
OnB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciBlcnJvckZpbHRlcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZXJyb3JGaWx0ZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6
cG9wRXJyb3JTY29wZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJHUFU6OkVycm9yPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJh
Y2spOworfQorCit2b2lkIFJlbW90ZURldmljZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7
CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZWEyMGE3M2JiYmU1ZDA3NjM4MWY4NzFkZjI2MmYyZDE4NDVjODNhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2Uu
aApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSAiV2ViR1BVRXJyb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oPgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2Ns
YXNzIERldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUg
eworc3RydWN0IEJpbmRHcm91cERlc2NyaXB0b3I7CitzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvcjsKK3N0cnVjdCBCdWZmZXJEZXNjcmlwdG9yOworc3RydWN0IENvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvcjsKK3N0cnVjdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IEV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3I7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBRdWVyeVNldERlc2NyaXB0b3I7CitzdHJ1Y3Qg
UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yOworc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yOworc3RydWN0IFNoYWRlck1vZHVsZURl
c2NyaXB0b3I7CitzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJlbW90ZURl
dmljZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZW1vdGVEZXZpY2U+IGNyZWF0ZShQQUw6OldlYkdQVTo6RGV2aWNl
JiBkZXZpY2UsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZURldmljZShkZXZpY2UsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB+UmVtb3RlRGV2aWNlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVEZXZpY2UoUEFMOjpXZWJHUFU6OkRldmljZSYs
IFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlRGV2aWNlKGNvbnN0IFJlbW90ZURl
dmljZSYpID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZShSZW1vdGVEZXZpY2UmJikgPSBkZWxl
dGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlRGV2aWNlJikgPSBk
ZWxldGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0oUmVtb3RlRGV2aWNlJiYpID0gZGVs
ZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZl
ckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGRlc3Ry
b3koKTsKKworICAgIHZvaWQgY3JlYXRlQnVmZmVyKGNvbnN0IFdlYkdQVTo6QnVmZmVyRGVzY3Jp
cHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlVGV4dHVyZShjb25zdCBX
ZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBj
cmVhdGVTYW1wbGVyKGNvbnN0IFdlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3ImLCBXZWJHUFVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGltcG9ydEV4dGVybmFsVGV4dHVyZShjb25zdCBXZWJHUFU6OkV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQg
Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IFdlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlUGlwZWxpbmVMYXlvdXQo
Y29uc3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGNyZWF0ZUJpbmRHcm91cChjb25zdCBXZWJHUFU6OkJpbmRHcm91cERlc2Ny
aXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY3JlYXRlU2hhZGVyTW9kdWxl
KGNvbnN0IFdlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIp
OworICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlUmVu
ZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJH
UFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0
IFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZVJlbmRlclBp
cGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJH
UFVJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisKKyAgICB2
b2lkIGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVh
dGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY3JlYXRlUXVlcnlTZXQo
Y29uc3QgV2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgcHVzaEVycm9yU2NvcGUoUEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyKTsKKyAgICB2
b2lkIHBvcEVycm9yU2NvcGUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8V2ViR1BVOjpFcnJvcj4mJik+JiYpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7
CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJH
UFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDA3ZWNmMjcyOWVkNTM4NzEyZWY3ODEyNDYxNDBiNTU1
YWVjYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0OCBAQAorLyog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZURldmlj
ZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBEZXN0cm95KCkKKyAgICB2b2lkIENy
ZWF0ZUJ1ZmZlcihXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBX
ZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVRleHR1
cmUoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlU2FtcGxlcihXZWJL
aXQ6OldlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBJbXBvcnRFeHRlcm5hbFRleHR1cmUoV2Vi
S2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVCaW5kR3JvdXBM
YXlvdXQoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3IgZGVzY3JpcHRv
ciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVQ
aXBlbGluZUxheW91dChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
Q3JlYXRlQmluZEdyb3VwKFdlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3Jl
YXRlU2hhZGVyTW9kdWxlKFdlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIHZvaWQgQ3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICB2b2lkIENyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKFdlYktpdDo6V2ViR1BV
OjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlUmVu
ZGVyUGlwZWxpbmVBc3luYyhXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBT
eW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlQ29tbWFuZEVuY29kZXIoc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OldlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVJlbmRlckJ1
bmRsZUVuY29kZXIoV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZv
aWQgQ3JlYXRlUXVlcnlTZXQoV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvciBkZXNj
cmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFB1
c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciBlcnJvckZpbHRlcikKKyAgICB2
b2lkIFBvcEVycm9yU2NvcGUoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYkdQVTo6RXJy
b3I+IGVycm9yKSBTeW5jaHJvbm91cworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OGJjNGQ5N2I1ZjBiODdmZTkxNmJkNzA1M2NkNDNkODQ1N2E2OTdjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRl
cm5hbFRleHR1cmUuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1JlbW90ZUV4dGVybmFsVGV4dHVyZTo6UmVtb3RlRXh0ZXJuYWxUZXh0
dXJlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmIGV4dGVybmFsVGV4dHVyZSwgV2ViR1BV
OjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGV4dGVybmFsVGV4dHVy
ZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVFeHRlcm5h
bFRleHR1cmU6On5SZW1vdGVFeHRlcm5hbFRleHR1cmUoKQoreworfQorCit2b2lkIFJlbW90ZUV4
dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BB
UkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZmNkZTNkNzhkZDIzZDVkZDgwM2VlNTNjYjY5NDRjOGY4YTg1YzNkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRl
cm5hbFRleHR1cmUuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpX
ZWJHUFUgeworY2xhc3MgRXh0ZXJuYWxUZXh0dXJlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1v
dGVFeHRlcm5hbFRleHR1cmUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlRXh0ZXJuYWxUZXh0dXJlPiBjcmVh
dGUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYgZXh0ZXJuYWxUZXh0dXJlLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVFeHRlcm5hbFRleHR1cmUoZXh0ZXJuYWxUZXh0dXJlLCBvYmplY3RIZWFwKSk7
CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlRXh0ZXJuYWxUZXh0dXJlKCk7CisKK3ByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVFeHRlcm5hbFRl
eHR1cmUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYsIFdlYkdQVTo6T2JqZWN0SGVhcCYp
OworCisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKGNvbnN0IFJlbW90ZUV4dGVybmFsVGV4dHVy
ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZShSZW1vdGVFeHRlcm5hbFRl
eHR1cmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJikgPSBkZWxldGU7CisgICAgUmVtb3RlRXh0ZXJu
YWxUZXh0dXJlJiBvcGVyYXRvcj0oUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0
cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlPiBtX2JhY2tp
bmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4
dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkZWQyNzhmZjI5MjRjMjQzMDRiMGUyM2EyZjAzYWQ5ZWI4ODA0OTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVy
bmFsVGV4dHVyZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIE5v
dFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ0MGY1MDViY2I0MDYzNTYzNGM5NjVm
ZGZhYmZhYzFiMDcyNDg5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUdQVS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitSZW1vdGVHUFU6OlJlbW90ZUdQVShQQUw6OldlYkdQVTo6R1BVJiBncHUsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhncHUpCisgICAgLCBt
X29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlR1BVOjp+UmVtb3RlR1BVKCkK
K3sKK30KKwordm9pZCBSZW1vdGVHUFU6OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFdlYkdQVTo6UmVx
dWVzdEFkYXB0ZXJPcHRpb25zJiBvcHRpb25zLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nJiYsIFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRM
aW1pdHMmJik+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOworICAg
IFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ5MmQyOWMy
NTZkYjY5MjY4ZWI4Y2ZjZWNiMTk2NjY1MmJhMzZmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgKQEAgLTAsMCAr
MSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgiCisj
aW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJH
UFUgeworY2xhc3MgR1BVOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdl
YkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFJlcXVlc3RBZGFwdGVyT3B0aW9uczsK
K30KKworY2xhc3MgUmVtb3RlR1BVIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJl
Y2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUdQVT4gY3JlYXRlKFBBTDo6
V2ViR1BVOjpHUFUmIGdwdSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlR1BVKGdwdSwgb2JqZWN0SGVhcCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUdQVSgpOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlR1BVKFBBTDo6V2ViR1BVOjpHUFUm
LCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUdQVShjb25zdCBSZW1vdGVHUFUm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVHUFUoUmVtb3RlR1BVJiYpID0gZGVsZXRlOworICAgIFJl
bW90ZUdQVSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUdQVSYpID0gZGVsZXRlOworICAgIFJlbW90
ZUdQVSYgb3BlcmF0b3I9KFJlbW90ZUdQVSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFU6
OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcmJiwgV2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYmLCBXZWJHUFU6OlN1cHBvcnRlZExpbWl0
cyYmKT4mJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkdQVT4gbV9iYWNraW5nOworICAgIFJl
ZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjU4ZTdmNWM3Y2U0MTY3Y2NkMzRkNTkxZDViMmYxMmVl
NjE3YTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUdQVSBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBSZXF1ZXN0QWRhcHRlcihXZWJLaXQ6OldlYkdQ
VTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zIG9wdGlvbnMpIC0+IChTdHJpbmcgbmFtZSwgV2ViS2l0
OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRlZEZlYXR1cmVzLCBXZWJLaXQ6Oldl
YkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0cykgU3luY2hyb25vdXMKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMGZh
ZGZlNjZjNDg1MDc1ZTkxNmQ1ODYyODYwNWNmZDU0NDNjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbW90ZVBpcGVsaW5lTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlUGlwZWxpbmVMYXlvdXQ6OlJlbW90ZVBpcGVsaW5lTGF5b3V0KFBBTDo6V2Vi
R1BVOjpQaXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQsIFdlYkdQVTo6T2JqZWN0SGVhcCYg
b2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhwaXBlbGluZUxheW91dCkKKyAgICAsIG1fb2Jq
ZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVQaXBlbGluZUxheW91dDo6flJlbW90
ZVBpcGVsaW5lTGF5b3V0KCkKK3sKK30KKwordm9pZCBSZW1vdGVQaXBlbGluZUxheW91dDo6c2V0
TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVBpcGVsaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNlOWRhNTBlOTA0NDJkMTIz
MjQyNTg2OGY5NDkyZGMwNWJlZmYyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuaApAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJX
ZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUGlwZWxp
bmVMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsK
K2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVBpcGVsaW5lTGF5b3V0IGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlBpcGVsaW5l
TGF5b3V0JiBwaXBlbGluZUxheW91dCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUGlwZWxpbmVMYXlvdXQo
cGlwZWxpbmVMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1v
dGVQaXBlbGluZUxheW91dCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RI
ZWFwOworCisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQoUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5
b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dChj
b25zdCBSZW1vdGVQaXBlbGluZUxheW91dCYpID0gZGVsZXRlOworICAgIFJlbW90ZVBpcGVsaW5l
TGF5b3V0KFJlbW90ZVBpcGVsaW5lTGF5b3V0JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVBpcGVs
aW5lTGF5b3V0JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUGlwZWxpbmVMYXlvdXQmKSA9IGRlbGV0
ZTsKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dCYgb3BlcmF0b3I9KFJlbW90ZVBpcGVsaW5lTGF5
b3V0JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6
OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UGlwZWxp
bmVMYXlvdXQ+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0ODM0ZjhlMWZiOWQxNTcyMzMyY2UyZTYyYmFiNmEzODE4MmZjMWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8q
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVQaXBl
bGluZUxheW91dCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJp
bmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MGMzYjk3OGU5MjliMzVjOWI5MDViOTJiOTQ1NGIzN2UwMmIzZTk0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNl
dC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZW1vdGVRdWVyeVNldC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUXVlcnlTZXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVF1
ZXJ5U2V0OjpSZW1vdGVRdWVyeVNldChQQUw6OldlYkdQVTo6UXVlcnlTZXQmIHF1ZXJ5U2V0LCBX
ZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocXVlcnlTZXQp
CisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUXVlcnlTZXQ6
On5SZW1vdGVRdWVyeVNldCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3ko
KQoreworfQorCit2b2lkIFJlbW90ZVF1ZXJ5U2V0OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkK
K3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNjUwMmViODE3NTRiNTdjYmFhMDc5NDI5YzI4ZTRkZTQ1ZTc2OTA4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVR
dWVyeVNldC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CitjbGFzcyBRdWVyeVNldDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFj
ZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUXVlcnlTZXQg
ZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8UmVtb3RlUXVlcnlTZXQ+IGNyZWF0ZShQQUw6OldlYkdQVTo6UXVlcnlTZXQm
IHF1ZXJ5U2V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVRdWVyeVNldChxdWVyeVNldCwgb2JqZWN0SGVh
cCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVF1ZXJ5U2V0KCk7CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVRdWVyeVNldChQQUw6
OldlYkdQVTo6UXVlcnlTZXQmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVF1
ZXJ5U2V0KGNvbnN0IFJlbW90ZVF1ZXJ5U2V0JikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVlcnlT
ZXQoUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVlcnlTZXQmIG9wZXJh
dG9yPShjb25zdCBSZW1vdGVRdWVyeVNldCYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXJ5U2V0
JiBvcGVyYXRvcj0oUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRM
YWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiBtX2JhY2tp
bmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXJ5U2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2E4MjYwMzQwZWFi
ZTlmMjAzNjI2ODAxM2EwMjA2OWUwZmI0N2UwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
bWVzc2FnZXMgLT4gUmVtb3RlUXVlcnlTZXQgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZv
aWQgRGVzdHJveSgpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVF1ZXVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTExNjUxODM1NTEzZTA5Y2E2NzY4NjQ0Yjc4
MDZjODg2M2UxNDRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVRdWV1ZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1JlbW90ZVF1ZXVlOjpSZW1vdGVRdWV1ZShQQUw6OldlYkdQVTo6UXVldWUm
IHF1ZXVlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmco
cXVldWUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUXVl
dWU6On5SZW1vdGVRdWV1ZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OnN1Ym1pdChWZWN0
b3I8V2ViR1BVSWRlbnRpZmllcj4mJiBjb21tYW5kQnVmZmVycykKK3sKKyAgICBVTlVTRURfUEFS
QU0oY29tbWFuZEJ1ZmZlcnMpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdv
cmtEb25lKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OndyaXRlQnVm
ZmVyKAorICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyLAorICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgYnVmZmVyT2Zmc2V0LAorICAgIFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpCit7CisgICAgVU5V
U0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlck9mZnNldCk7CisgICAg
VU5VU0VEX1BBUkFNKGRhdGEpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjp3cml0ZVRleHR1cmUo
CisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBW
ZWN0b3I8dWludDhfdD4mJiBkYXRhLAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0
JiBkYXRhTGF5b3V0LAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIHNpemUpCit7CisgICAg
VU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAg
VU5VU0VEX1BBUkFNKGRhdGFMYXlvdXQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwor
dm9pZCBSZW1vdGVRdWV1ZTo6Y29weUV4dGVybmFsSW1hZ2VUb1RleHR1cmUoCisgICAgY29uc3Qg
V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkJiBkZXN0aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6
OkV4dGVudDNEJiBjb3B5U2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUXVldWU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVO
VVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMzAxZGFkMTU4
MzNkNjE3NzMyM2Q0Y2RjNjI1YTNlMmJkMmFjZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmgKQEAgLTAsMCAr
MSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldl
YkdQVUV4dGVudDNELmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5
cGVzLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFF1ZXVlOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitzdHJ1Y3QgSW1hZ2VDb3B5
RXh0ZXJuYWxJbWFnZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworc3RydWN0IEltYWdlQ29w
eVRleHR1cmVUYWdnZWQ7CitzdHJ1Y3QgSW1hZ2VEYXRhTGF5b3V0OworY2xhc3MgT2JqZWN0SGVh
cDsKK30KKworY2xhc3MgUmVtb3RlUXVldWUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUXVldWU+IGNyZWF0
ZShQQUw6OldlYkdQVTo6UXVldWUmIHF1ZXVlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhl
YXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVRdWV1ZShxdWV1
ZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVF1ZXVlKCk7CisK
K3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVRdWV1
ZShQQUw6OldlYkdQVTo6UXVldWUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90
ZVF1ZXVlKGNvbnN0IFJlbW90ZVF1ZXVlJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVldWUoUmVt
b3RlUXVldWUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVldWUmIG9wZXJhdG9yPShjb25zdCBS
ZW1vdGVRdWV1ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXVlJiBvcGVyYXRvcj0oUmVtb3Rl
UXVldWUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQ
Qzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKwor
ICAgIHZvaWQgc3VibWl0KFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiYmKTsKKworICAgIHZvaWQg
b25TdWJtaXR0ZWRXb3JrRG9uZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisK
KyAgICB2b2lkIHdyaXRlQnVmZmVyKAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwKKyAgICAgICAgVmVjdG9yPHVpbnQ4
X3Q+JiYpOworCisgICAgdm9pZCB3cml0ZVRleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiYm
LAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlRGF0YUxheW91dCYsCisgICAgICAgIGNvbnN0
IFdlYkdQVTo6RXh0ZW50M0QmIHNpemUpOworCisgICAgdm9pZCBjb3B5RXh0ZXJuYWxJbWFnZVRv
VGV4dHVyZSgKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBz
b3VyY2UsCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCYgZGVz
dGluYXRpb24sCisgICAgICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKTsKKwor
ICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpRdWV1
ZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVRdWV1ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY3NjBiYjMy
NmQ1Mjg5ZWU0YjRhY2YyMGJjYzc4YmE0MTczNGY1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzNSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
K21lc3NhZ2VzIC0+IFJlbW90ZVF1ZXVlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IFN1Ym1pdChWZWN0b3I8V2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyPiBjb21tYW5kQnVmZmVycykK
KyAgICB2b2lkIE9uU3VibWl0dGVkV29ya0RvbmUoKSAtPiAoKSBTeW5jaHJvbm91cworICAgIHZv
aWQgV3JpdGVCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6
V2ViR1BVOjpTaXplNjQgYnVmZmVyT2Zmc2V0LCBWZWN0b3I8dWludDhfdD4gZGF0YSkKKyAgICB2
b2lkIFdyaXRlVGV4dHVyZShXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5h
dGlvbiwgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEsIFdlYktpdDo6V2ViR1BVOjpJbWFnZURhdGFMYXlv
dXQgaW1hZ2VEYXRhTGF5b3V0LCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0Qgc2l6ZSkKKyAgICB2
b2lkIENvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlF
eHRlcm5hbEltYWdlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdn
ZWQgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICB2
b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
ckJ1bmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk0MDU3OWUyZDkwZTZhYjAxOWYzNWQwYjk2NzE0ZTkx
MzY4MzhlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlckJ1bmRs
ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0
SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxl
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVSZW5kZXJCdW5kbGU6OlJlbW90ZVJl
bmRlckJ1bmRsZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlJiByZW5kZXJCdW5kbGUsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJCdW5kbGUp
CisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUmVuZGVyQnVu
ZGxlOjp+UmVtb3RlUmVuZGVyQnVuZGxlKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5k
bGU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UyYWIwNGZjYjE0NTY5
ZmVhM2RlNWI5NGQ3OTVhNGNkNGJmNzI4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmgKQEAgLTAs
MCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
V2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFJlbmRl
ckJ1bmRsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgewor
Y2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUmVuZGVyQnVuZGxlIGZpbmFsIDog
cHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFJlbW90ZVJlbmRlckJ1bmRsZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUm
IHJlbmRlckJ1bmRsZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyQnVuZGxlKHJlbmRlckJ1bmRs
ZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVJlbmRlckJ1bmRs
ZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVt
b3RlUmVuZGVyQnVuZGxlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUmLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZShjb25zdCBSZW1vdGVSZW5kZXJCdW5k
bGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUoUmVtb3RlUmVuZGVyQnVuZGxl
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZSYgb3BlcmF0b3I9KGNvbnN0IFJl
bW90ZVJlbmRlckJ1bmRsZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZSYgb3Bl
cmF0b3I9KFJlbW90ZVJlbmRlckJ1bmRsZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6
Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
ckJ1bmRsZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzEyMjZjZjdmODEwZmVkMGM3OTRmMDAy
YjdmZWMyNzc0Mzg1MDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2Vz
IC0+IFJlbW90ZVJlbmRlckJ1bmRsZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBT
ZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE2NTI3ZjJmZjk5OTQ4MzU1NGU1OWRm
OGQ0NWZkYmZlY2RjYjliMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKQEAgLTAs
MCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihQ
QUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciYgcmVuZGVyQnVuZGxlRW5jb2RlciwgV2Vi
R1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlckJ1bmRs
ZUVuY29kZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoKQoreworfQor
Cit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldFBpcGVsaW5lKFdlYkdQVUlkZW50
aWZpZXIgcmVuZGVyUGlwZWxpbmUpCit7CisgICAgVU5VU0VEX1BBUkFNKHJlbmRlclBpcGVsaW5l
KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihX
ZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0IGluZGV4Rm9y
bWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6U2l6ZTY0PiBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNF
RF9QQVJBTShpbmRleEZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5V
U0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVy
IGJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc2xvdCk7CisgICAgVU5V
U0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VE
X1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRyYXco
UEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0
YW5jZUNvdW50LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RWZXJ0ZXgsIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkKK3sKKyAgICBVTlVTRURfUEFSQU0odmVydGV4Q291
bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKKyAgICBVTlVTRURfUEFSQU0o
Zmlyc3RWZXJ0ZXgpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKK30KKwordm9p
ZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6
ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5kZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9m
ZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNl
KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5kZXgpOworICAgIFVOVVNFRF9Q
QVJBTShiYXNlVmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0o
aW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRy
YXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJl
Y3RCdWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdE9mZnNldCk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRl
eDMyIGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGJpbmRHcm91cCwKKyAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNl
dHMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdy
b3VwKTsKKyAgICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNldHMpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworfQorCit2b2lkIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnBvcERlYnVnR3JvdXAoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQor
eworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjk4NTIyMTA0Nzc0NzUyYTBkNTFkNTM3ZTZk
NTYyN2M3Yjk5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMCwwICsxLDEw
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhG
b3JtYXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlw
ZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJCdW5kbGVFbmNvZGVy
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBP
YmplY3RIZWFwOworc3RydWN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyJiByZW5kZXJCdW5k
bGVFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKHJlbmRlckJ1
bmRsZUVuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB+UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2RlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOwor
CisgICAgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
RW5jb2RlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcihjb25zdCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJikgPSBkZWxldGU7CisgICAg
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJiYpID0g
ZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXImIG9wZXJhdG9yPShjb25zdCBS
ZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXImJikgPSBkZWxl
dGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UGlw
ZWxpbmUoV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNldEluZGV4QnVmZmVyKFdlYkdQ
VUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2
NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4pOworICAgIHZvaWQg
c2V0VmVydGV4QnVmZmVyKFBBTDo6V2ViR1BVOjpJbmRleDMyIHNsb3QsIFdlYkdQVUlkZW50aWZp
ZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpTaXplNjQ+KTsKKworICAgIHZvaWQgZHJhdyhQQUw6OldlYkdQVTo6U2l6ZTMyIHZlcnRleENv
dW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5j
ZSk7CisgICAgdm9pZCBkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQs
IFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlNpemUzMiBmaXJzdEluZGV4LAorICAgICAgICBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIg
YmFzZVZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKTsK
KworICAgIHZvaWQgZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIs
IFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpOworICAgIHZvaWQgZHJhd0luZGV4
ZWRJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6
U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsKKworICAgIHZvaWQgc2V0QmluZEdyb3VwKFBBTDo6V2Vi
R1BVOjpJbmRleDMyLCBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMp
OworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKTsKKyAgICB2
b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFya2VyKFN0cmluZyYm
IG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgZmluaXNoKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVu
ZGxlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRMYWJlbChT
dHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+IG1f
YmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lM2Y3Y2Y5MDM3MGNjNjcyOTE0ZjFmMjJlMTM0MDg3ZmE5ZGUxMmNiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDIgQEAK
Ky8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldFBp
cGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgU2V0
SW5kZXhCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2Vi
R1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIFNldFZl
cnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIERyYXcoUEFMOjpXZWJHUFU6
OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
SW5zdGFuY2UpCisgICAgdm9pZCBEcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4
Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNp
emUzMiBmaXJzdEluZGV4LCBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwg
UEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGlyZWN0
KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIERyYXdJbmRleGVkSW5kaXJlY3QoV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGlu
ZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgU2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMy
IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiBkeW5hbWljT2Zmc2V0
cykKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmluZyBncm91cExhYmVsKQorICAgIHZvaWQg
UG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcgbWFya2Vy
TGFiZWwpCisgICAgdm9pZCBGaW5pc2goV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWM5NzI5Y2UxYWQwOTU4NjNm
NjUwNDMzMGY5ZDUyMTVlNjQ1OTJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKQEAg
LTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoUEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiByZW5kZXJQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlclBhc3NFbmNvZGVyKQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjp+UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoKQoreworfQorCit2b2lkIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyIHJlbmRlclBpcGVs
aW5lKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJQaXBlbGluZSk7Cit9CisKK3ZvaWQgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldEluZGV4QnVmZmVyKFdlYkdQVUlkZW50aWZpZXIgYnVm
ZmVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpT
aXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4Rm9ybWF0
KTsKKyAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihQQUw6Oldl
YkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6
OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oc2xvdCk7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7Cisg
ICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQorCit2
b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVy
dGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFu
Y2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHZlcnRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0VmVydGV4KTsKKyAgICBVTlVT
RURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXI6OmRyYXdJbmRleGVkKFBBTDo6V2ViR1BVOjpTaXplMzIgaW5kZXhDb3VudCwgUEFMOjpXZWJH
UFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJ
bmRleCwKKyAgICBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwKKyAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGV4Q291bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKKyAgICBVTlVTRURf
UEFSQU0oZmlyc3RJbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VWZXJ0ZXgpOworICAgIFVO
VVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlcjo6ZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6
V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGly
ZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lk
IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0o
aW5kaXJlY3RCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRC
aW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgYmlu
ZEdyb3VwLAorICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5h
bWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kZXgp
OworICAgIFVOVVNFRF9QQVJBTShiaW5kR3JvdXApOworICAgIFVOVVNFRF9QQVJBTShkeW5hbWlj
T2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwp
OworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3Ry
aW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQoZmxvYXQgeCwgZmxv
YXQgeSwKKyAgICBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LAorICAgIGZsb2F0IG1pbkRlcHRo
LCBmbG9hdCBtYXhEZXB0aCkKK3sKKyAgICBVTlVTRURfUEFSQU0oeCk7CisgICAgVU5VU0VEX1BB
UkFNKHkpOworICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7CisgICAgVU5VU0VEX1BBUkFNKGhlaWdo
dCk7CisgICAgVU5VU0VEX1BBUkFNKG1pbkRlcHRoKTsKKyAgICBVTlVTRURfUEFSQU0obWF4RGVw
dGgpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdChQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlIHksCisgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHdpZHRoLCBQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0KQoreworICAgIFVOVVNFRF9QQVJBTSh4
KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CisgICAgVU5VU0VEX1BBUkFNKHdpZHRoKTsKKyAgICBV
TlVTRURfUEFSQU0oaGVpZ2h0KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0QmxlbmRDb25zdGFudChXZWJHUFU6OkNvbG9yIGNvbG9yKQoreworICAgIFVOVVNFRF9QQVJB
TShjb2xvcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxS
ZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpCit7CisgICAg
VU5VU0VEX1BBUkFNKHN0ZW5jaWxWYWx1ZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXI6OmJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4
KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZW5kT2NjbHVzaW9uUXVlcnkoKQoreworfQorCit2b2lkIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50
aWZpZXIgcXVlcnlTZXQsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKK3sKKyAgICBV
TlVTRURfUEFSQU0ocXVlcnlTZXQpOworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVl
cnkoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpleGVjdXRlQnVuZGxl
cyhWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJiByZW5kZXJCdW5kbGVzKQoreworICAgIFVOVVNF
RF9QQVJBTShyZW5kZXJCdW5kbGVzKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cjo6ZW5kUGFzcygpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldExh
YmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5M2Y2ODllMzI5ZmQ2
NTYxODk2NTQ4YWQxYTE0OThjMjExMDk5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmgK
QEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUNvbG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaD4KKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQ
QUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJQYXNzRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xh
c3MgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXImIHJlbmRlclBhc3NF
bmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlcihyZW5kZXJQYXNzRW5j
b2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIH5SZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXIoUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiwgV2Vi
R1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcihjb25zdCBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90
ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3Ry
ZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7CisKKyAgICB2b2lkIHNldFBpcGVsaW5lKFdlYkdQVUlkZW50aWZpZXIpOworCisg
ICAgdm9pZCBzZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5k
ZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTaXplNjQ+KTsKKyAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6
SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNl
dCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0Pik7CisKKyAgICB2b2lkIGRyYXco
UEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0
YW5jZUNvdW50LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6
OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworICAgIHZvaWQgZHJhd0luZGV4ZWQoUEFM
OjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNl
Q291bnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSk7CisKKyAgICB2b2lkIGRyYXdJbmRpcmVjdChXZWJH
UFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0
T2Zmc2V0KTsKKyAgICB2b2lkIGRyYXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBp
bmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAg
ICB2b2lkIHNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmll
ciwKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFt
aWNPZmZzZXQ+PiYmIGR5bmFtaWNPZmZzZXRzKTsKKworICAgIHZvaWQgcHVzaERlYnVnR3JvdXAo
U3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9p
ZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lkIHNl
dFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0IHksCisgICAgICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsCisgICAgICAgIGZsb2F0IG1pbkRlcHRoLCBmbG9hdCBtYXhEZXB0aCk7CisKKyAgICB2
b2lkIHNldFNjaXNzb3JSZWN0KFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4LCBQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlIHdpZHRoLCBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0
KTsKKworICAgIHZvaWQgc2V0QmxlbmRDb25zdGFudChXZWJHUFU6OkNvbG9yKTsKKyAgICB2b2lk
IHNldFN0ZW5jaWxSZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSk7CisKKyAgICB2
b2lkIGJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsK
KyAgICB2b2lkIGVuZE9jY2x1c2lvblF1ZXJ5KCk7CisKKyAgICB2b2lkIGJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVy
eUluZGV4KTsKKyAgICB2b2lkIGVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CisKKyAgICB2
b2lkIGV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiYmKTsKKyAgICB2b2lk
IGVuZFBhc3MoKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBB
TDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6
Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThiN2JhYWE4ZWFjMDli
Mzc1Y2ZiYTc4NGE5ZDMyOGJkZDZiNmFlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSw1MSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyIE5vdFJlZkNvdW50ZWQg
U3RyZWFtIHsKKyAgICB2b2lkIFNldFBpcGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorICAgIHZvaWQgU2V0SW5kZXhCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFM
OjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2
ND4gc2l6ZSkKKyAgICB2b2lkIFNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBz
bG90LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAg
ICB2b2lkIERyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6
OlNpemUzMiBpbnN0YW5jZUNvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCisgICAgdm9pZCBEcmF3SW5kZXhlZChQ
QUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFu
Y2VDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LCBQQUw6OldlYkdQVTo6U2ln
bmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNl
KQorICAgIHZvaWQgRHJhd0luZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVj
dEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIERy
YXdJbmRleGVkSW5kaXJlY3QoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVy
LCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgU2V0QmluZEdy
b3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFt
aWNPZmZzZXQ+PiBkeW5hbWljT2Zmc2V0cykKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmlu
ZyBncm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnRE
ZWJ1Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBTZXRWaWV3cG9ydChmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBtaW5EZXB0aCwg
ZmxvYXQgbWF4RGVwdGgpCisgICAgdm9pZCBTZXRTY2lzc29yUmVjdChQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHksIFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlIGhlaWdodCkKKyAgICB2b2lkIFNldEJsZW5kQ29uc3RhbnQoV2ViS2l0OjpXZWJHUFU6
OkNvbG9yIGNvbG9yKQorICAgIHZvaWQgU2V0U3RlbmNpbFJlZmVyZW5jZShQQUw6OldlYkdQVTo6
U3RlbmNpbFZhbHVlIHN0ZW5jaWxWYWx1ZSkKKyAgICB2b2lkIEJlZ2luT2NjbHVzaW9uUXVlcnko
UEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgRW5kT2NjbHVzaW9uUXVl
cnkoKQorICAgIHZvaWQgQmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQor
ICAgIHZvaWQgRW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQorICAgIHZvaWQgRXhlY3V0ZUJ1
bmRsZXMoVmVjdG9yPFdlYktpdDo6V2ViR1BVSWRlbnRpZmllcj4gYnVuZGxlcykKKyAgICB2b2lk
IEVuZFBhc3MoKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E0MGE5MDM2NDk5
MWVjNjRkZDMwYjQwZGRiZTc2YmJlOTdmMTc1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3Bw
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVuZGVyUGlwZWxpbmUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZW1vdGVSZW5kZXJQaXBlbGluZTo6UmVtb3RlUmVuZGVyUGlwZWxpbmUoUEFMOjpXZWJHUFU6OlJl
bmRlclBpcGVsaW5lJiByZW5kZXJQaXBlbGluZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RI
ZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlclBpcGVsaW5lKQorICAgICwgbV9vYmplY3RIZWFw
KG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVuZGVy
UGlwZWxpbmUoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBpcGVsaW5lOjpnZXRCaW5kR3Jv
dXBMYXlvdXQodWludDMyX3QgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVs
aW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmRlODhmY2FlNjk1MTgwNThjMjRmOWQxZWQ3NzI5NTIxY2U5OThj
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVyUGlwZWxpbmU7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9
CisKK2NsYXNzIFJlbW90ZVJlbmRlclBpcGVsaW5lIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFt
TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRlclBp
cGVsaW5lPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lJiByZW5kZXJQaXBlbGlu
ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyUGlwZWxpbmUocmVuZGVyUGlwZWxpbmUsIG9iamVj
dEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVSZW5kZXJQaXBlbGluZSgpOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUmVu
ZGVyUGlwZWxpbmUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZShjb25zdCBSZW1vdGVSZW5kZXJQaXBl
bGluZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBpcGVsaW5lKFJlbW90ZVJlbmRlclBp
cGVsaW5lJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBpcGVsaW5lJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlUmVuZGVyUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQ
aXBlbGluZSYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlclBpcGVsaW5lJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGdldEJpbmRHcm91cExh
eW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNldExh
YmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+IG1f
YmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNjODc5NDc3NGUwODY4MWRkOGQwYWIwZjEwNjI4N2ZmMmYzM2MzNWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJQaXBlbGluZSBO
b3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBHZXRCaW5kR3JvdXBMYXlvdXQodWludDMy
X3QgaW5kZXgsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICB2b2lk
IFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYjI0NmM4YzU2MGE3NzJhYmFlZTgwNGM2MWQ1NTg4YTA3NjU2ZDFiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVTYW1wbGVyLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZXIuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIoUEFMOjpXZWJHUFU6OlNhbXBsZXImIHNhbXBs
ZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhzYW1w
bGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVNhbXBs
ZXI6On5SZW1vdGVTYW1wbGVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVTYW1wbGVyOjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2Ft
cGxlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVT
YW1wbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhjOTcxZTEwNjlhMWE2Njc1ZDljM2IyODVkMTZhNmZlNzE3
ZTJjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlU2FtcGxlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBTYW1wbGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBS
ZW1vdGVTYW1wbGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZXI+IGNyZWF0ZShQQUw6OldlYkdQ
VTo6U2FtcGxlciYgc2FtcGxlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlcihzYW1wbGVyLCBv
YmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlU2FtcGxlcigpOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlU2FtcGxl
cihQQUw6OldlYkdQVTo6U2FtcGxlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVt
b3RlU2FtcGxlcihjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2Ft
cGxlcihSZW1vdGVTYW1wbGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVNhbXBsZXImIG9wZXJh
dG9yPShjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2FtcGxlciYg
b3BlcmF0b3I9KFJlbW90ZVNhbXBsZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVm
PFBBTDo6V2ViR1BVOjpTYW1wbGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0
SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWNkYWMxYjY5Y2M3NmU2MjQ4OTFlODhlYWQ4ZDFkNGE3MDZlNTUxNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICog
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlciBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWYwOTNk
Nzc5YWE3NzFkZWRmZWNlODFlNThlZjg0N2U4ZGM0NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5j
cHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVTaGFkZXJNb2R1bGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVt
b3RlU2hhZGVyTW9kdWxlOjpSZW1vdGVTaGFkZXJNb2R1bGUoUEFMOjpXZWJHUFU6OlNoYWRlck1v
ZHVsZSYgc2hhZGVyTW9kdWxlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
OiBtX2JhY2tpbmcoc2hhZGVyTW9kdWxlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVNoYWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSgpCit7Cit9
CisKK3ZvaWQgUmVtb3RlU2hhZGVyTW9kdWxlOjpjb21waWxhdGlvbkluZm8oV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJik+JiYg
Y2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1v
dGVTaGFkZXJNb2R1bGU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9Q
QVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEx
MjBjMGI1MzgwOTFiYTc0ZGZmNDEwMzBhMWZjOTRkOWUzYjk0MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9k
dWxlLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBTaGFkZXJN
b2R1bGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2Ns
YXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVNoYWRlck1vZHVsZSBmaW5hbCA6IHB1
YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVTaGFkZXJNb2R1bGU+IGNyZWF0ZShQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlJiBz
aGFkZXJNb2R1bGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNoYWRlck1vZHVsZShzaGFkZXJNb2R1bGUs
IG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVTaGFkZXJNb2R1bGUo
KTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90
ZVNoYWRlck1vZHVsZShQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUoY29uc3QgUmVtb3RlU2hhZGVyTW9kdWxl
JikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxlKFJlbW90ZVNoYWRlck1vZHVsZSYm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUmIG9wZXJhdG9yPShjb25zdCBSZW1v
dGVTaGFkZXJNb2R1bGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUmIG9wZXJh
dG9yPShSZW1vdGVTaGFkZXJNb2R1bGUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgY29tcGlsYXRpb25JbmZvKFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiYpPiYmKTsK
KworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpT
aGFkZXJNb2R1bGU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29i
amVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWM4M2FlNmY1YTJmNDFhNjk3OTRmOTExYmMxY2M1ZWE0MTI3ODUwZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVTaGFkZXJN
b2R1bGUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgQ29tcGlsYXRpb25JbmZvKCkg
LT4gKFZlY3RvcjxXZWJLaXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiBtZXNzYWdlcykg
U3luY2hyb25vdXMKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVRleHR1cmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGZkMjRkYzNhNTIzMmYwNDkxZDZkZTk0
ODVjYThlYWI4ODMxZjRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmNwcApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHR1cmUu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUoUEFMOjpX
ZWJHUFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICA6IG1fYmFja2luZyh0ZXh0dXJlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVRleHR1cmU6On5SZW1vdGVUZXh0dXJlKCkKK3sKK30KKwordm9pZCBS
ZW1vdGVUZXh0dXJlOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVUZXh0dXJlOjpkZXN0cm95KCkKK3sKK30KKwor
dm9pZCBSZW1vdGVUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVT
RURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzNWVkMjQ4
OWY1NzYzYWFmMjhmMDZlNGVmODc0YTVlMDYyZDJlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBUZXh0
dXJlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFz
cyBPYmplY3RIZWFwOworc3RydWN0IFRleHR1cmVWaWV3RGVzY3JpcHRvcjsKK30KKworY2xhc3Mg
UmVtb3RlVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVUZXh0dXJlPiBjcmVhdGUoUEFMOjpXZWJH
UFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVRleHR1cmUodGV4dHVyZSwg
b2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmUoKTsKKwor
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVRleHR1
cmUoUEFMOjpXZWJHUFU6OlRleHR1cmUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJl
bW90ZVRleHR1cmUoY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVRl
eHR1cmUoUmVtb3RlVGV4dHVyZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlJiBvcGVy
YXRvcj0oY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVRleHR1cmUm
IG9wZXJhdG9yPShSZW1vdGVUZXh0dXJlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNl
aXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25h
bDxXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mLCBXZWJHUFVJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAg
ICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpP
YmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ZlOWY2MGRjYjk5NjRiZWM1OGVlMDEwMzdmOWVmZDYzZTlh
NmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVUZXh0dXJl
IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIENyZWF0ZVZpZXcoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIERlc3Ryb3koKQorICAg
IHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0
dXJlVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhNGE3ODYzNmFmYmUxYWJiZGIyNjM4NWJjZjg4ODg1
MTE1MmNmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlVGV4dHVyZVZpZXcu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3Lmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVUZXh0dXJlVmlldzo6UmVtb3RlVGV4dHVy
ZVZpZXcoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3JiB0ZXh0dXJlVmlldywgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHRleHR1cmVWaWV3KQorICAgICwg
bV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVRleHR1cmVWaWV3Ojp+UmVt
b3RlVGV4dHVyZVZpZXcoKQoreworfQorCit2b2lkIFJlbW90ZVRleHR1cmVWaWV3OjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4
dHVyZVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlVGV4dHVyZVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDA1ZmNhZGJlNDc3MThkZDlkMDlhZDQzOTQ5
NjFkNzM1MGRkZDJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5oCkBAIC0wLDAgKzEsNzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBUZXh0dXJlVmlldzsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVh
cDsKK30KKworY2xhc3MgUmVtb3RlVGV4dHVyZVZpZXcgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlVGV4dHVy
ZVZpZXc+IGNyZWF0ZShQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIHRleHR1cmVWaWV3LCBXZWJH
UFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZW1vdGVUZXh0dXJlVmlldyh0ZXh0dXJlVmlldywgb2JqZWN0SGVhcCkpOworICAg
IH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmVWaWV3KCk7CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVUZXh0dXJlVmlldyhQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXcmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVRl
eHR1cmVWaWV3KGNvbnN0IFJlbW90ZVRleHR1cmVWaWV3JikgPSBkZWxldGU7CisgICAgUmVtb3Rl
VGV4dHVyZVZpZXcoUmVtb3RlVGV4dHVyZVZpZXcmJikgPSBkZWxldGU7CisgICAgUmVtb3RlVGV4
dHVyZVZpZXcmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVUZXh0dXJlVmlldyYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZVRleHR1cmVWaWV3JiBvcGVyYXRvcj0oUmVtb3RlVGV4dHVyZVZpZXcmJikgPSBk
ZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0
TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4gbV9i
YWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBm
ZGJiMDAzMDg3ZjNmY2M4ZmE0MDBjMDQyM2MxYjQ3MjQ5NjY5ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZp
ZXcubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVRleHR1cmVWaWV3IE5vdFJlZkNvdW50ZWQg
U3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVPYmplY3RIZWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjBlOTRmNmMyMTBiMGIwYzA5YWFm
YTg5NjY0N2VkMWZmNzY5NTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcApAQCAtMCwwICsxLDIz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVP
YmplY3RIZWFwLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQWRhcHRlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlci5oPgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmg+CisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUXVldWUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlckJ1bmRsZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVu
ZGVyQnVuZGxlRW5jb2Rlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
YW1wbGVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1
bGUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK09iamVjdEhlYXA6Ok9iamVjdEhlYXAoKQoreworfQor
CitPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCgpCit7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpB
ZGFwdGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+PihpdGVyYXRvci0+
dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVm
PFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJh
dG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
b2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6
OkJpbmRHcm91cD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cD4+KGl0ZXJhdG9y
LT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQq
IE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5k
KGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0
ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+Pihp
dGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3Rk
OjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBPYmplY3RIZWFwOjpjb252
ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRl
cmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQ
QUw6OldlYkdQVTo6QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZm
ZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmlu
ZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFz
dGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlcj4+KGl0
ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0
cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIE9iamVjdEhlYXA6
OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6
OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitj
b25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0
Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0
aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVy
dENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAg
aWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJH
UFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0
IFBBTDo6V2ViR1BVOjpEZXZpY2UqIE9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1f
b2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMu
ZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+
PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
c3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+PihpdGVyYXRvci0+dmFsdWUpLnB0cigp
OworfQorCitjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
R1BVPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6R1BVPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIo
KTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBPYmplY3RIZWFwOjpj
b252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwor
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OlBpcGVsaW5lTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UXVlcnlTZXRGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpR
dWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0Pj4oaXRlcmF0b3ItPnZh
bHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBPYmplY3RIZWFwOjpj
b252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChp
dGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
PFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZUVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBt
X29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3Rz
LmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVy
QnVuZGxlRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29k
ZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6UmVu
ZGVyQnVuZGxlKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVj
dHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgp
IHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
Pj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0
ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9yLT52
YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8
UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBsZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRl
cmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0g
bV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQ
VTo6U2FtcGxlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+PihpdGVyYXRvci0+
dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlm
aWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRz
X2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZh
bHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQ
QUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKwor
Y29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIE9iamVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
VGV4dHVyZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+PihpdGVyYXRvci0+dmFs
dWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIE9iamVjdEhl
YXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3Pj4oaXRlcmF0b3ItPnZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXc+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gSEFWRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
T2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVPYmplY3RIZWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ2ZDFlNTE3OTdiNjZhMGUzNmU2OGI3YzUx
MGJiNTAyYmQwMTk2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCkBAIC0wLDAgKzEsMTAwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHZhcmlhbnQ+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CisKK2NsYXNzIE9iamVjdEhlYXAgZmluYWwgOiBwdWJsaWMgV2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE9iamVjdEhlYXA+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmplY3RIZWFwKCkpOwor
ICAgIH0KKworICAgIH5PYmplY3RIZWFwKCk7CisKK3ByaXZhdGU6CisgICAgT2JqZWN0SGVhcCgp
OworCisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkFkYXB0ZXIqIGNvbnZlcnRBZGFwdGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkJp
bmRHcm91cCogY29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZp
bmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIGNvbnZlcnRCaW5k
R3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25z
dCBQQUw6OldlYkdQVTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNv
bnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Cisg
ICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29k
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6Oldl
YkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZSogY29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIGNvbnZlcnRE
ZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6
OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxp
bmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQ
QUw6OldlYkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1
ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6
OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlciog
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0UmVuZGVy
UGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQ
QUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBjb252
ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAg
Y29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
KworICAgIHVzaW5nIE9iamVjdCA9IHN0ZDo6dmFyaWFudDwKKyAgICAgICAgUmVmPFBBTDo6V2Vi
R1BVOjpBZGFwdGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+LAorICAg
ICAgICBSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4sCisgICAgICAgIFJlZjxQQUw6
OldlYkdQVTo6QnVmZmVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVy
PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4sCisgICAgICAgIFJl
ZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGlwZWxpbmU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4s
CisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6R1BVPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BV
OjpQaXBlbGluZUxheW91dD4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+LAor
ICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPiwKKyAg
ICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4sCisgICAgICAgIFJlZjxQQUw6
OldlYkdQVTo6U2FtcGxlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxl
PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPiwKKyAgICAgICAgUmVmPFBBTDo6
V2ViR1BVOjpUZXh0dXJlVmlldz4KKyAgICA+OworICAgIEhhc2hNYXA8V2ViR1BVSWRlbnRpZmll
ciwgT2JqZWN0PiBtX29iamVjdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaApp
bmRleCA4ZjdkMzYzM2RkMDJkOTBhMWE1NjA0YTAwNjM0ZTMxZmE1MWI1N2ZhLi4yNzBlMWViZTMx
MjM1Zjc3ODZkZjA3YjkwMDBhMWM4N2E1N2QyN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGVzdGluYXRpb25Db2xvclNw
YWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbWFnZURlY29kZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJh
dGUtdW5pZmllZC1zb3VyY2VzLnNoIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVu
aWZpZWQtc291cmNlcy5zaAppbmRleCBlYzEzMzI2ZmIwZWU4NWRkOTYwNjJlNmE0OWUxMmUxNTU0
NTE2ZjA1Li44NTJjMjU4YzdlNGMyYzMyOGQ1MDdiOWY1MmFjNDc4NTlmMzFiZGU4IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKQEAg
LTE0LDcgKzE0LDcgQEAgaWYgWyAteiAiJHtCVUlMRF9TQ1JJUFRTX0RJUn0iIF07IHRoZW4KICAg
ICBmaQogZmkKIAotVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD0xMDAKK1VuaWZpZWRTb3VyY2VD
cHBGaWxlQ291bnQ9MTAzCiBVbmlmaWVkU291cmNlTW1GaWxlQ291bnQ9ODAKIAogaWYgWyAkIyAt
ZXEgMCBdOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCA4YmQwZGIyOTdiZmI0MDc0ZjY4OTAwNDJmY2RhNDc4NDUwZGYwNTY2Li4zMTk2YzVjZjU4NmQy
NGUxMDZhZjJiYWIwMWVjYjk0MmRlMWI0ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTM1OCw2ICszNTgsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpUcmFuc2FjdGlvbklEJywK
ICAgICAgICAgJ1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6WFJEZXZpY2VJZGVudGlmaWVyJywKQEAgLTY3OCwyMSArNjc5LDY5
IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgIGhlYWRlcl9pbmZvc19hbmRfdHlw
ZXMgPSBjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKHR5cGUpCiAKICAgICBzcGVjaWFsX2Nhc2VzID0g
ewotICAgICAgICAnTWFjaFNlbmRSaWdodCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10sCi0g
ICAgICAgICdKU0M6Ok1lc3NhZ2VMZXZlbCc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBl
cy5oPiddLAotICAgICAgICAnSlNDOjpNZXNzYWdlU291cmNlJzogWyc8SmF2YVNjcmlwdENvcmUv
Q29uc29sZVR5cGVzLmg+J10sCiAgICAgICAgICdJUEM6OlNlbWFwaG9yZSc6IFsnIklQQ1NlbWFw
aG9yZS5oIiddLAogICAgICAgICAnSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcic6IFsnIkluc3Bl
Y3RvckV4dGVuc2lvblR5cGVzLmgiJ10sCiAgICAgICAgICdJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbDo6Q29ubmVjdGlvblR5cGUnOiBbJzxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwuaD4nXSwKICAgICAgICAgJ0luc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0VHlwZSc6
IFsnPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclRhcmdldC5oPiddLAotICAgICAgICAnV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9EaXNwbGF5
TGlzdC5oPiddLAorICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0Q29y
ZS9Db25zb2xlVHlwZXMuaD4nXSwKKyAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsnPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLAorICAgICAgICAnTWFjaFNlbmRSaWdodCc6
IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10sCiAgICAgICAgICdNZWRpYVRpbWUnOiBbJzx3dGYv
TWVkaWFUaW1lLmg+J10sCiAgICAgICAgICdNb25vdG9uaWNUaW1lJzogWyc8d3RmL01vbm90b25p
Y1RpbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25JRC5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlJzogWyc8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJs
ZW5kRmFjdG9yJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rvci5oPidd
LAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uJzogWyc8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6
OkJ1ZmZlckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZz
ZXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzJzogWyc8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNhbnZh
c0NvbXBvc2l0aW5nQWxwaGFNb2RlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52
YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNvbG9y
V3JpdGVGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JXcml0ZS5oPidd
LAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbic6IFsnPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQ
VTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
Q29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNvbXB1
dGVQYXNzVGltZXN0YW1wTG9jYXRpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNv
bXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpD
dWxsTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpEZXB0aEJpYXMnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpEZXZpY2VMb3N0
UmVhc29uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmg+
J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXInOiBbJzxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RmVh
dHVyZU5hbWUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg+J10s
CisgICAgICAgICdQQUw6OldlYkdQVTo6RmlsdGVyTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRmlsdGVyTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkZsYWdzQ29u
c3RhbnQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpGcm9udEZhY2UnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUZyb250RmFjZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkluZGV4MzInOiBb
JzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAg
J1BBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
SW5kZXhGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0
ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAg
ICAgICAnUEFMOjpXZWJHUFU6OkxvYWRPcCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
TG9hZE9wLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzJzogWyc8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQ
VTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
aXBlbGluZVN0YXRpc3RpY05hbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpQb3dlclBy
ZWZlcmVuY2UnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBvd2VyUHJlZmVyZW5jZS5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlJzogWyc8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oPiddLAorICAgICAg
ICAnUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVQcmltaXRpdmVUb3BvbG9neS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlF1
ZXJ5VHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmg+J10sCisg
ICAgICAgICdQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uJzogWyc8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTYW1wbGVNYXNrJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2FtcGxl
ckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZUZsYWdzJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJTdGFnZS5oPiddLAorICAgICAgICAnUEFM
OjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJ
bnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2l6ZTMyJzogWyc8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6
OldlYkdQVTo6U2l6ZTY0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5
cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbic6IFsnPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oPiddLAorICAgICAgICAn
UEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
SW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJl
QWNjZXNzJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFjY2Vz
cy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3JlT3AnOiBbJzxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJl
QXNwZWN0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0Lmg+J10s
CisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbic6IFsnPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVG
b3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZSc6IFsn
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUuaD4nXSwKKyAgICAg
ICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlVXNhZ2VGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVVGV4dHVyZVVzYWdlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVy
ZVZpZXdEaW1lbnNpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3
RGltZW5zaW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0JzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BB
TDo6V2ViR1BVOjpWZXJ0ZXhTdGVwTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
VmVydGV4U3RlcE1vZGUuaD4nXSwKKyAgICAgICAgJ1BsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVE
YXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+J10sCiAgICAgICAgICdTZWNvbmRzJzogWyc8
d3RmL1NlY29uZHMuaD4nXSwKKyAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPiddLAogICAgICAgICAnVVJMJzogWyc8d3RmL1VSTEhhc2guaD4nXSwKICAgICAgICAgJ1dh
bGxUaW1lJzogWyc8d3RmL1dhbGxUaW1lLmg+J10sCi0gICAgICAgICdTdHJpbmcnOiBbJzx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4nXSwKLSAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nl
c3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXJjRGF0YSc6IFsnPFdlYkNvcmUvSW5s
aW5lUGF0aERhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6
IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QmV6aWVy
Q3VydmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLApAQCAtNzA0LDEyICs3
NTMsMTQgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpD
cmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCc6IFsnPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29yZS9E
T01QYXN0ZUFjY2Vzcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlJzogWyc8V2ViQ29yZS9Db2xvclNwYWNlLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSc6IFsnPFdlYkNv
cmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRPcldvcmtl
cklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnOiBbJzxXZWJDb3JlL0RyYWdEYXRhLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2QnOiBbJzxXZWJDb3JlL0Ry
YWdBY3Rpb25zLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnT3BlcmF0aW9uJzogWyc8V2Vi
Q29yZS9EcmFnQWN0aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlv
bic6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkR5bmFt
aWNSYW5nZU1vZGUnOiBbJzxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlJzogWyc8V2ViQ29yZS9HYW1lcGFkUHJv
dmlkZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMnOiBb
JzxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCkBAIC03
MzYsOCArNzg3LDggQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJD
b3JlOjpMaW5lSm9pbic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBl
cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyc6
IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCc6IFsnPFdlYkNvcmUvTWVk
aWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkn
OiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPidd
LApAQCAtNzk1LDkgKzg0Niw5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVz
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8V2ViQ29y
ZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVD
aGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5mby5oIiddLAotICAgICAgICAnV2ViS2l0OjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUlkZW50aWZpZXInOiBbJyJJZGVudGlmaWVyVHlwZXMuaCInXSwK
ICAgICAgICAgJ1dlYktpdDo6QWxsb3dPdmVyd3JpdGUnOiBbJyJEb3dubG9hZElELmgiJ10sCiAg
ICAgICAgICdXZWJLaXQ6OkFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSc6IFsnIkFwcFByaXZh
Y3lSZXBvcnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VJ
ZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLAogICAgICAgICAn
V2ViS2l0OjpDYWxsRG93bmxvYWREaWRTdGFydCc6IFsnIkRvd25sb2FkTWFuYWdlci5oIiddLAog
ICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJzogWyciQ29udGVudFdvcmxk
U2hhcmVkLmgiJ10sCkBAIC04MTgsMTUgKzg2OSw3OSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0
eXBlKToKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uVG91Y2gnOiBbJyJHZXN0dXJlVHlwZXMu
aCInXSwKICAgICAgICAgJ1dlYktpdDo6VGFwSWRlbnRpZmllcic6IFsnIklkZW50aWZpZXJUeXBl
cy5oIiddLAogICAgICAgICAnV2ViS2l0OjpUZXh0Q2hlY2tlclJlcXVlc3RJRCc6IFsnIklkZW50
aWZpZXJUeXBlcy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERlc2Ny
aXB0b3InOiBbJyJXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6QmluZEdyb3VwRW50cnknOiBbJyJXZWJHUFVCaW5kR3JvdXBFbnRyeS5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3InOiBb
JyJXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnknOiBbJyJXZWJHUFVCaW5kR3JvdXBMYXlvdXRF
bnRyeS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50JzogWyci
V2ViR1BVQmxlbmRDb21wb25lbnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCbGVu
ZFN0YXRlJzogWyciV2ViR1BVQmxlbmRTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OkJ1ZmZlckJpbmRpbmcnOiBbJyJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dCc6IFsnIldlYkdQVUJ1ZmZlckJp
bmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCdWZmZXJEZXNjcmlw
dG9yJzogWyciV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb24nOiBbJyJXZWJHUFVDYW52YXNDb25maWd1cmF0aW9u
LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29sb3InOiBbJyJXZWJHUFVDb2xvci5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3RhdGUnOiBbJyJXZWJH
UFVDb2xvclRhcmdldFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3InOiBbJyJXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcic6IFsn
IldlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZSc6IFsnIldlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcic6IFsn
IldlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzJzogWyciV2ViR1BVQ29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yJzogWyciV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQnOiBbJyJX
ZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6Oldl
YkdQVTo6Q29udmVydFRvQmFja2luZ0NvbnRleHQnOiBbJyJXZWJHUFVDb252ZXJ0VG9CYWNraW5n
Q29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkRlcHRoU3RlbmNpbFN0YXRl
JzogWyciV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpEZXZpY2VEZXNjcmlwdG9yJzogWyciV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkVycm9yJzogWyciV2ViR1BVRXJyb3IuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCc6IFsnIldlYkdQVUV4dGVudDNELmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCc6
IFsnIldlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJzogWyciV2ViR1BVRXh0ZXJu
YWxUZXh0dXJlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkZyYWdt
ZW50U3RhdGUnOiBbJyJXZWJHUFVGcmFnbWVudFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6SWRlbnRpZmllcic6IFsnIldlYkdQVUlkZW50aWZpZXIuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXInOiBbJyJXZWJHUFVJbWFnZUNvcHlCdWZm
ZXIuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdl
JzogWyciV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUnOiBbJyJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgi
J10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCc6IFsn
IldlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpJbWFnZURhdGFMYXlvdXQnOiBbJyJXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlJzogWyciV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0
b3JCYXNlJzogWyciV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6V2ViR1BVOjpPcmlnaW4yRCc6IFsnIldlYkdQVU9yaWdpbjJELmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6T3JpZ2luM0QnOiBbJyJXZWJHUFVPcmlnaW4zRC5oIiddLAorICAg
ICAgICAnV2ViS2l0OjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3InOiBbJyJXZWJHUFVPdXRPZk1l
bW9yeUVycm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVEZXNjcmlw
dG9yQmFzZSc6IFsnIldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3InOiBbJyJXZWJHUFVQaXBl
bGluZUxheW91dERlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpQcmlt
aXRpdmVTdGF0ZSc6IFsnIldlYkdQVVByaW1pdGl2ZVN0YXRlLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2UnOiBbJyJXZWJHUFVQcm9ncmFtbWFibGVTdGFn
ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvcic6IFsn
IldlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6
OlJlbmRlckJ1bmRsZURlc2NyaXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9y
LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2Ny
aXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIiddLAorICAg
ICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQnOiBbJyJXZWJH
UFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQ
VTo6UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQnOiBbJyJXZWJHUFVSZW5kZXJQYXNz
RGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJl
bmRlclBhc3NEZXNjcmlwdG9yJzogWyciV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0JzogWyciV2ViR1BVUmVu
ZGVyUGFzc0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZXMnOiBbJyJXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJzogWyci
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6Oldl
YkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJzogWyciV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQn
OiBbJyJXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJzogWyci
V2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OlN0ZW5jaWxGYWNlU3RhdGUnOiBbJyJXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgiJ10sCisg
ICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0JzogWyci
V2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMnOiBbJyJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyc6IFsnIldlYkdQ
VVN1cHBvcnRlZExpbWl0cy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVC
aW5kaW5nTGF5b3V0JzogWyciV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvcic6IFsnIldlYkdQVVRleHR1cmVE
ZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNj
cmlwdG9yJzogWyciV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yJzogWyciV2ViR1BVVmFsaWRhdGlvbkVycm9y
LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlJzogWyciV2Vi
R1BVVmVydGV4QXR0cmlidXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4
QnVmZmVyTGF5b3V0JzogWyciV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4U3RhdGUnOiBbJyJXZWJHUFVWZXJ0ZXhTdGF0ZS5oIidd
LAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUvQ29va2llLmg+
J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQnOiBbJzxXZWJDb3Jl
L0VsZW1lbnRDb250ZXh0Lmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6VmlkZW9QbGF5
YmFja1F1YWxpdHlNZXRyaWNzJzogWyc8V2ViQ29yZS9WaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJp
Y3MuaD4nXSwKKyAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3NhZ2VIYW5kbGVy
RGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLAogICAgICAg
ICAnc3RydWN0IFdlYktpdDo6V2ViVXNlclNjcmlwdERhdGEnOiBbJyJXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlVzZXJT
dHlsZVNoZWV0RGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIidd
LAotICAgICAgICAnc3RydWN0IFdlYktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhJzog
WyciV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICd3ZWJy
dGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8nOiBbJzx3ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRF
bmNvZGVyLmg+JywgJzxXZWJDb3JlL0xpYldlYlJUQ0VudW1UcmFpdHMuaD4nXSwKLSAgICAgICAg
J1BsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+
J10sCi0gICAgICAgICdXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlJzogWyc8V2ViQ29yZS9QbGF0
Zm9ybVNjcmVlbi5oPiddLAogICAgIH0KIAogICAgIGhlYWRlcnMgPSBbXQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgK
aW5kZXggMGUwZWJjNDQ3NjBkZTk3Mjc5OTBiYzk3MWJhMTMzODk0NjYyOGFlMy4uYmNjZTViOTM4
NmQ4OWY3YzBhMTNjOGNhNTNkZDkzYmZlMjVkM2FkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCkBAIC0zNSw2
ICszNSwzMyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJpbmRHcm91cERl
c2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdlYkdQVUlkZW50
aWZpZXIgYmluZEdyb3VwTGF5b3V0OwogICAgIFZlY3RvcjxCaW5kR3JvdXBFbnRyeT4gZW50cmll
czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0
IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJpbmRH
cm91cExheW91dDsKKyAgICAgICAgZW5jb2RlciA8PCBlbnRyaWVzOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cERlc2Ny
aXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAg
IGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVz
Y3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gYmluZEdyb3VwTGF5b3V0OworICAgICAg
ICBkZWNvZGVyID4+IGJpbmRHcm91cExheW91dDsKKyAgICAgICAgaWYgKCFiaW5kR3JvdXBMYXlv
dXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEJpbmRHcm91cEVudHJ5Pj4gZW50cmllczsKKyAgICAgICAgZGVjb2RlciA+
PiBlbnRyaWVzOworICAgICAgICBpZiAoIWVudHJpZXMpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRv
ckJhc2UpLCBXVEZNb3ZlKCpiaW5kR3JvdXBMYXlvdXQpLCBXVEZNb3ZlKCplbnRyaWVzKSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKaW5kZXggZjM4
ZGQ1MDY3NzY0OTIyNmM0ZDdhMDMwYzlkZTljY2JkNmRkNjYzMy4uZDJmNDlkNTA4NDM3ZGJjOWRm
YmFkN2JlZDg2MTEzMWFjN2Q0ZThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKQEAgLTQ0LDYgKzQ0LDUzIEBAIHN0cnVjdCBC
aW5kR3JvdXBFbnRyeSB7CiAgICAgQnVmZmVyQmluZGluZyBidWZmZXJCaW5kaW5nOwogICAgIFdl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBCaW5kaW5nUmVzb3VyY2VUeXBlIHR5cGU7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5kaW5nOworICAgICAgICBl
bmNvZGVyIDw8IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGVuY29kZXIgPDwgaWRlbnRpZmllcjsK
KyAgICAgICAgZW5jb2RlciA8PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cEVudHJ5PiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Oklu
ZGV4MzI+IGJpbmRpbmc7CisgICAgICAgIGRlY29kZXIgPj4gYmluZGluZzsKKyAgICAgICAgaWYg
KCFiaW5kaW5nKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmc+IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGRlY29k
ZXIgPj4gYnVmZmVyQmluZGluZzsKKyAgICAgICAgaWYgKCFidWZmZXJCaW5kaW5nKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQ
VUlkZW50aWZpZXI+IGlkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsK
KyAgICAgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPEJpbmRpbmdSZXNvdXJjZVR5cGU+IHR5cGU7Cisg
ICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJpbmRp
bmcpLCBXVEZNb3ZlKCpidWZmZXJCaW5kaW5nKSwgV1RGTW92ZSgqaWRlbnRpZmllciksIFdURk1v
dmUoKnR5cGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJL
aXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBlLAor
ICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6U2FtcGxlciwKKyAg
ICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OlRleHR1cmVWaWV3LAor
ICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6QnVmZmVyQmluZGlu
ZywKKyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OkV4dGVybmFs
VGV4dHVyZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvci5oCmluZGV4IDY4YmFiZWRiYjY1MzZkNGJkNDBiN2Q1M2I0YWQ5NDY1YjM3ZjY5ZWIu
LmI0ZjBjYjRjNjYyZWYzYWYyZGE1NTgyMDlmMmM3MDhhNTA5YzQ1NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaApAQCAtMzMsNiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIAogc3RydWN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVz
Y3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZW50cmllczsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9i
amVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGVudHJpZXM7
CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3RE
ZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8QmluZEdyb3VwTGF5
b3V0RW50cnk+PiBlbnRyaWVzOworICAgICAgICBkZWNvZGVyID4+IGVudHJpZXM7CisgICAgICAg
IGlmICghZW50cmllcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmVu
dHJpZXMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExh
eW91dEVudHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RW50cnkuaAppbmRleCA0MDJhM2YwOTE5MWU4NThlNTRmYjNlY2E3NDZiOWQzODlkM2Jm
OWYwLi5iODMwYTU5MTQ4OTZlNWRmNzI1MmZmNGQwYzYzMjA1YzU5N2RkYzFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0
RW50cnkuaApAQCAtNDUsNiArNDUsNTcgQEAgc3RydWN0IEJpbmRHcm91cExheW91dEVudHJ5IHsK
ICAgICBzdGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiB0ZXh0dXJlOwogICAgIHN0
ZDo6b3B0aW9uYWw8U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0PiBzdG9yYWdlVGV4dHVyZTsK
ICAgICBzdGQ6Om9wdGlvbmFsPEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGV4dGVybmFs
VGV4dHVyZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGJpbmRpbmc7Cisg
ICAgICAgIGVuY29kZXIgPDwgdmlzaWJpbGl0eTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXI7
CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlcjsKKyAgICAgICAgZW5jb2RlciA8PCB0ZXh0dXJl
OworICAgICAgICBlbmNvZGVyIDw8IHN0b3JhZ2VUZXh0dXJlOworICAgICAgICBlbmNvZGVyIDw8
IGV4dGVybmFsVGV4dHVyZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRl
eDMyPiBiaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+IGJpbmRpbmc7CisgICAgICAgIGlmICgh
YmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFncz4gdmlzaWJpbGl0eTsKKyAg
ICAgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgICAgICBpZiAoIXZpc2liaWxpdHkpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDxCdWZmZXJCaW5kaW5nTGF5b3V0Pj4gYnVmZmVyOworICAgICAgICBkZWNv
ZGVyID4+IGJ1ZmZlcjsKKyAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTYW1w
bGVyQmluZGluZ0xheW91dD4+IHNhbXBsZXI7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlcjsK
KyAgICAgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8VGV4dHVyZUJpbmRpbmdMYXlv
dXQ+PiB0ZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAgICAgIGlmICgh
dGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4+IHN0
b3JhZ2VUZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHN0b3JhZ2VUZXh0dXJlOworICAgICAg
ICBpZiAoIXN0b3JhZ2VUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8RXh0ZXJuYWxUZXh0dXJlQmlu
ZGluZ0xheW91dD4+IGV4dGVybmFsVGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiBleHRlcm5h
bFRleHR1cmU7CisgICAgICAgIGlmICghZXh0ZXJuYWxUZXh0dXJlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJpbmRpbmcp
LCBXVEZNb3ZlKCp2aXNpYmlsaXR5KSwgV1RGTW92ZSgqYnVmZmVyKSwgV1RGTW92ZSgqc2FtcGxl
ciksIFdURk1vdmUoKnRleHR1cmUpLCBXVEZNb3ZlKCpzdG9yYWdlVGV4dHVyZSksIFdURk1vdmUo
KmV4dGVybmFsVGV4dHVyZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmxlbmRDb21wb25lbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVu
ZENvbXBvbmVudC5oCmluZGV4IDk0YWM1YTI0MjBiMjM4MzA2ZmQ1NTk2ZjU0ZjVjNjhiMmI3NmJi
MjIuLmVlYmY5M2U3NGIyYjcxYzVkNmVkNDZhMDc2ODEwNzk4YWZjZDA4ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCkBAIC0z
NCw2ICszNCwzMyBAQCBzdHJ1Y3QgQmxlbmRDb21wb25lbnQgewogICAgIFBBTDo6V2ViR1BVOjpC
bGVuZE9wZXJhdGlvbiBvcGVyYXRpb247CiAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yIHNy
Y0ZhY3RvcjsKICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3IgZHN0RmFjdG9yOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3BlcmF0aW9uOworICAgICAgICBlbmNvZGVy
IDw8IHNyY0ZhY3RvcjsKKyAgICAgICAgZW5jb2RlciA8PCBkc3RGYWN0b3I7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QmxlbmRDb21w
b25lbnQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb24+IG9wZXJhdGlvbjsKKyAgICAgICAgZGVj
b2RlciA+PiBvcGVyYXRpb247CisgICAgICAgIGlmICghb3BlcmF0aW9uKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpCbGVuZEZhY3Rvcj4gc3JjRmFjdG9yOworICAgICAgICBkZWNvZGVyID4+IHNyY0ZhY3RvcjsK
KyAgICAgICAgaWYgKCFzcmNGYWN0b3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yPiBkc3RG
YWN0b3I7CisgICAgICAgIGRlY29kZXIgPj4gZHN0RmFjdG9yOworICAgICAgICBpZiAoIWRzdEZh
Y3RvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpvcGVyYXRpb24pLCBXVEZNb3ZlKCpzcmNGYWN0b3IpLCBXVEZNb3ZlKCpk
c3RGYWN0b3IpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3Rh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgKaW5k
ZXggYTQxZjUxN2JjMTJjOTE3YTkyYTJlZTE5YTY0MzgyM2I2NGFhMmZiZi4uOWU4NGJhY2U5ZWE5
OWIzMDVhMzY5MDYyZWViYTY1OWQ2MjllOGZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJsZW5kU3RhdGUgewogICAgIEJsZW5kQ29tcG9uZW50
IGNvbG9yOwogICAgIEJsZW5kQ29tcG9uZW50IGFscGhhOworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgY29sb3I7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGE7CisgICAgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QmxlbmRT
dGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlv
bmFsPEJsZW5kQ29tcG9uZW50PiBjb2xvcjsKKyAgICAgICAgZGVjb2RlciA+PiBjb2xvcjsKKyAg
ICAgICAgaWYgKCFjb2xvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxCbGVuZENvbXBvbmVudD4gYWxwaGE7CisgICAgICAgIGRlY29k
ZXIgPj4gYWxwaGE7CisgICAgICAgIGlmICghYWxwaGEpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29sb3IpLCBXVEZNb3Zl
KCphbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmlu
ZGluZy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcu
aAppbmRleCBkNDU5ODFmOWJkMTg1MTRiNzQyOWJlYjEyZTM0MDM5YTU5NWFmODdhLi4zMTZiNDE2
OGExZDljNTEyMjg0ZGEzZWY2YTYyMGEyNzM3ODU4YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKQEAgLTM2LDYgKzM2LDMzIEBA
IHN0cnVjdCBCdWZmZXJCaW5kaW5nIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlcjsKICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldDsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaXplNjQ+IHNpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBi
dWZmZXI7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8IHNp
emU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QnVmZmVyQmluZGluZz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGJ1ZmZlcjsKKyAgICAgICAgZGVj
b2RlciA+PiBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXpl
NjQ+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICghb2Zm
c2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4+IHNpemU7CisgICAgICAg
IGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJ1ZmZlciksIFdU
Rk1vdmUoKm9mZnNldCksIFdURk1vdmUoKnNpemUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgKaW5kZXggZjFmMDE2NWM3MWRjYmFi
YzEzZjRlMjkyNTI1NmI2YzE2NGMxYmZlOC4uZjlkMTEwZTRiMGJiZTY1YjNlZjVhMjZkZGYxY2Uz
MmQ0NGJkZjJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCkBAIC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3QgQnVm
ZmVyQmluZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlIHR5
cGU7CiAgICAgYm9vbCBoYXNEeW5hbWljT2Zmc2V0OwogICAgIFBBTDo6V2ViR1BVOjpTaXplNjQg
bWluQmluZGluZ1NpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB0eXBl
OworICAgICAgICBlbmNvZGVyIDw8IGhhc0R5bmFtaWNPZmZzZXQ7CisgICAgICAgIGVuY29kZXIg
PDwgbWluQmluZGluZ1NpemU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8QnVmZmVyQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZm
ZXJCaW5kaW5nVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAgICBp
ZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gaGFzRHluYW1pY09mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBo
YXNEeW5hbWljT2Zmc2V0OworICAgICAgICBpZiAoIWhhc0R5bmFtaWNPZmZzZXQpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemU2ND4gbWluQmluZGluZ1NpemU7CisgICAgICAgIGRlY29kZXIgPj4gbWluQmlu
ZGluZ1NpemU7CisgICAgICAgIGlmICghbWluQmluZGluZ1NpemUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdHlwZSksIFdU
Rk1vdmUoKmhhc0R5bmFtaWNPZmZzZXQpLCBXVEZNb3ZlKCptaW5CaW5kaW5nU2l6ZSkgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCA2
YzdhMTYwZWFkOTQxY2MwM2I3NDRkOWEyNzQxYzhiYTI4MTdlOTVkLi45YzUzNDRhMjRiZjBkODlk
NjFmNDhkMTFmNmY1Nzk0NWE4ZjAxYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKQEAgLTM1LDYgKzM1LDM5IEBAIHN0
cnVjdCBCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemU7CiAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlclVzYWdl
RmxhZ3MgdXNhZ2U7CiAgICAgYm9vbCBtYXBwZWRBdENyZWF0aW9uOworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7
CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJh
c2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICAgICAgZW5jb2RlciA8
PCB1c2FnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXBwZWRBdENyZWF0aW9uOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckRl
c2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAg
ICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0
RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZTsKKyAgICAgICAgZGVj
b2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZlclVz
YWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBpZiAo
IXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IG1hcHBlZEF0Q3JlYXRpb247CisgICAgICAgIGRlY29kZXIgPj4gbWFw
cGVkQXRDcmVhdGlvbjsKKyAgICAgICAgaWYgKCFtYXBwZWRBdENyZWF0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9i
amVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqc2l6ZSksIFdURk1vdmUoKnVzYWdlKSwgV1RG
TW92ZSgqbWFwcGVkQXRDcmVhdGlvbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaAppbmRleCBiODc2N2YwYTFiMDU4N2VmZTgxYzE5
YTljNjE5MTMxOTkzZjA3OTlmLi44NGI0YjA5NzVhOGQ3MTk0OTQ4ODY1YWFlNzE3ZWVjZTE4NjBi
NDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
YW52YXNDb25maWd1cmF0aW9uLmgKQEAgLTQ3LDYgKzQ3LDUxIEBAIHN0cnVjdCBDYW52YXNDb25m
aWd1cmF0aW9uIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JT
cGFjZTsKICAgICBQQUw6OldlYkdQVTo6Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUgY29tcG9z
aXRpbmdBbHBoYU1vZGU7CiAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6ZTsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGRldmljZTsKKyAgICAgICAgZW5jb2RlciA8
PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgdXNhZ2U7CisgICAgICAgIGVuY29kZXIgPDwg
Y29sb3JTcGFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBjb21wb3NpdGluZ0FscGhhTW9kZTsKKyAg
ICAgICAgZW5jb2RlciA8PCBzaXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhbnZhc0NvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlm
aWVyPiBkZXZpY2U7CisgICAgICAgIGRlY29kZXIgPj4gZGV2aWNlOworICAgICAgICBpZiAoIWRl
dmljZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gZm9ybWF0OworICAgICAgICBkZWNv
ZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVVzYWdlRmxhZ3M+
IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBpZiAoIXVzYWdlKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBjb2xvclNwYWNlOworICAgICAgICBpZiAoIWNvbG9yU3BhY2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlPiBjb21wb3NpdGluZ0FscGhhTW9kZTsK
KyAgICAgICAgZGVjb2RlciA+PiBjb21wb3NpdGluZ0FscGhhTW9kZTsKKyAgICAgICAgaWYgKCFj
b21wb3NpdGluZ0FscGhhTW9kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEV4dGVudDNEPj4gc2l6ZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZGV2aWNl
KSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2UpLCBXVEZNb3ZlKCpjb2xvclNwYWNl
KSwgV1RGTW92ZSgqY29tcG9zaXRpbmdBbHBoYU1vZGUpLCBXVEZNb3ZlKCpzaXplKSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKaW5kZXggMDc1M2NjNmUwNmRkOThjYzdjMjJiNjE2
ZGVkY2JmZmY3N2U0YmJkOS4uNGUwZjQzOWRmZjViYThhMjQ2MTViMGIzNzhkMTE0MWE4NThhNzk4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKQEAgLTM2LDYg
KzM2LDM5IEBAIHN0cnVjdCBDb2xvckRpY3QgewogICAgIGRvdWJsZSBnOwogICAgIGRvdWJsZSBi
OwogICAgIGRvdWJsZSBhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgcjsK
KyAgICAgICAgZW5jb2RlciA8PCBnOworICAgICAgICBlbmNvZGVyIDw8IGI7CisgICAgICAgIGVu
Y29kZXIgPDwgYTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxDb2xvckRpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHI7CisgICAgICAgIGRlY29kZXIgPj4gcjsK
KyAgICAgICAgaWYgKCFyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZzsKKyAgICAgICAgZGVjb2RlciA+PiBnOworICAg
ICAgICBpZiAoIWcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBiOworICAgICAgICBkZWNvZGVyID4+IGI7CisgICAgICAg
IGlmICghYikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IGE7CisgICAgICAgIGRlY29kZXIgPj4gYTsKKyAgICAgICAgaWYg
KCFhKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKnIpLCBXVEZNb3ZlKCpnKSwgV1RGTW92ZSgqYiksIFdURk1vdmUoKmEpIH0g
fTsKKyAgICB9CiB9OwogCiB1c2luZyBDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91Ymxl
PiwgQ29sb3JEaWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb2xvclRhcmdldFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29sb3JUYXJnZXRTdGF0ZS5oCmluZGV4IGZiZWU3ODE4NGFmM2YwOWY1YTlmOGI3Y2ZiMGE3
ZjdmNGM5YTNmYjcuLjJlMzAzYzQ3ZTA1MjFhMTI5NDQxNGIwNjljZmUyMzc5MmQzZTZmOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0
U3RhdGUuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IENvbG9yVGFyZ2V0U3RhdGUgewogCiAg
ICAgc3RkOjpvcHRpb25hbDxCbGVuZFN0YXRlPiBibGVuZDsKICAgICBQQUw6OldlYkdQVTo6Q29s
b3JXcml0ZUZsYWdzIHdyaXRlTWFzazsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBibGVuZDsKKyAgICAgICAgZW5jb2RlciA8
PCB3cml0ZU1hc2s7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q29sb3JUYXJnZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAgICBpZiAoIWZvcm1h
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPEJsZW5kU3RhdGU+PiBibGVuZDsKKyAgICAgICAgZGVjb2RlciA+
PiBibGVuZDsKKyAgICAgICAgaWYgKCFibGVuZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3JXcml0ZUZs
YWdzPiB3cml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gd3JpdGVNYXNrOworICAgICAgICBp
ZiAoIXdyaXRlTWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpibGVuZCksIFdURk1vdmUo
KndyaXRlTWFzaykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4IDZkYzYzYzNlZjRiNTY1NTFhNmQyNjNhNmZi
YTY4N2JkZjYxOTQ5OTYuLmFmYjYwODNjMDU0NTFmMjUzYzdkMmI1Y2I2YTRiZWI1ZWVmMmMzYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zMCw2ICszMCwyMCBAQAogbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIDogcHVibGlj
IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21t
YW5kQnVmZmVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAg
aWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSkg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNj
cmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29k
ZXJEZXNjcmlwdG9yLmgKaW5kZXggZjA3YTVmMDA3MzE5YWM5N2QxMWMwNTU4MTQ0NmMxMGU4M2Uz
MDllNi4uMzNiZWIwOWU2ZDVlMDQ3MTZmZDNiOGRjNmFiNTBjOGU3ODYyYTVmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3Jp
cHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5j
b2RlckRlc2NyaXB0b3IuaApAQCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CiAKIHN0cnVjdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2UgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBz
dGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFv
YmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSkgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDhlYTRkYjU0YWMyMjhhYjg3YzNiOThmNDVkYjM4NzFlZmEwZTkyNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlv
bk1lc3NhZ2UuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
Q29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdHJ1Y3QgQ29tcGlsYXRpb25NZXNz
YWdlIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25N
ZXNzYWdlVHlwZSB0eXBlOworICAgIHVpbnQ2NF90IGxpbmVOdW07CisgICAgdWludDY0X3QgbGlu
ZVBvczsKKyAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDY0X3QgbGVuZ3RoOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVzc2FnZTsKKyAgICAgICAgZW5jb2RlciA8
PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8IGxpbmVOdW07CisgICAgICAgIGVuY29kZXIgPDwg
bGluZVBvczsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29kZXIgPDwg
bGVuZ3RoOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPENvbXBpbGF0aW9uTWVzc2FnZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICAgICAgZGVj
b2RlciA+PiBtZXNzYWdlOworICAgICAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNv
bXBpbGF0aW9uTWVzc2FnZVR5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAg
ICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBsaW5lTnVtOworICAgICAgICBkZWNvZGVyID4+
IGxpbmVOdW07CisgICAgICAgIGlmICghbGluZU51bSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGluZVBvczsKKyAg
ICAgICAgZGVjb2RlciA+PiBsaW5lUG9zOworICAgICAgICBpZiAoIWxpbmVQb3MpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICghb2Zm
c2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBsZW5ndGg7CisgICAgICAgIGRlY29kZXIgPj4gbGVuZ3RoOworICAg
ICAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCptZXNzYWdlKSwgV1RGTW92ZSgqdHlwZSksIFdURk1v
dmUoKmxpbmVOdW0pLCBXVEZNb3ZlKCpsaW5lUG9zKSwgV1RGTW92ZSgqb2Zmc2V0KSwgV1RGTW92
ZSgqbGVuZ3RoKSB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRl
UGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuaAppbmRleCA5NTdlNmU0NjMzYjc4NjVjYTA3MTYwNDdlYjdjOTEx
OTg2ZTZiYTI4Li43YmIzZTMxOGViZWMzM2VjOGY3OGE4M2YxNmQ3NTVjM2QyMTQxY2Q5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNj
cmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQ
YXNzRGVzY3JpcHRvci5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgewogCiBzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKICAgICBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyB0aW1lc3RhbXBXcml0
ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25z
dCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1l
c3RhbXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+
IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0
b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQYXNz
VGltZXN0YW1wV3JpdGVzPiB0aW1lc3RhbXBXcml0ZXM7CisgICAgICAgIGRlY29kZXIgPj4gdGlt
ZXN0YW1wV3JpdGVzOworICAgICAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmpl
Y3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdy
aXRlcy5oCmluZGV4IDFhMDZmOGYwMjUzY2YyNmZmZmYwY2RiMjQ1ZGMyMDZkNDg2MzM4OTUuLjRm
MjJkOWFhYjFkYjYyOGJmMzEzNjIyYzg0OThjNmE4NGFjMjdkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlcy5oCkBAIC0zNyw2ICszNywzMyBAQCBzdHJ1Y3QgQ29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQQUw6OldlYkdQ
VTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24gbG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBxdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVyeUluZGV4OworICAgICAgICBlbmNv
ZGVyIDw8IGxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlm
aWVyPiBxdWVyeVNldDsKKyAgICAgICAgZGVjb2RlciA+PiBxdWVyeVNldDsKKyAgICAgICAgaWYg
KCFxdWVyeVNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBxdWVyeUluZGV4OworICAgICAgICBk
ZWNvZGVyID4+IHF1ZXJ5SW5kZXg7CisgICAgICAgIGlmICghcXVlcnlJbmRleCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247CisgICAgICAgIGRl
Y29kZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcXVlcnlT
ZXQpLCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0gfTsKKyAgICB9
CiB9OwogCiB1c2luZyBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxDb21wdXRl
UGFzc1RpbWVzdGFtcFdyaXRlPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IGM5MzMy
NmE5ZTkzNzVkYjNiNTA4MDk5NjE2Y2MxMzY5MDZjMjkzM2IuLmNkZDY1ZDA5NWY2OGU1ZWNiZWI5
ODdkM2FiMzNiMjhhMmNiNjQ2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtMzIs
NiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiAgICAg
UHJvZ3JhbW1hYmxlU3RhZ2UgY29tcHV0ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UmPigqdGhpcyk7
CisgICAgICAgIGVuY29kZXIgPDwgY29tcHV0ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBwaXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIXBpcGVsaW5l
RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IGNvbXB1dGU7CisgICAgICAgIGRl
Y29kZXIgPj4gY29tcHV0ZTsKKyAgICAgICAgaWYgKCFjb21wdXRlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnBpcGVsaW5l
RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb21wdXRlKSB9IH07CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCmluZGV4
IDAyMTg4MjdiMzAxYWM2ZDM4YzZjNzI4ZDc4Y2UxOWE5YzI5OTVhYjQuLjU5NTQ1ZDYwNDY5YWJl
ZTI1MzAyZjdjOTM0N2I4NDAyNTI3Y2NiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaApA
QCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6
QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNvbnZlcnRDb21t
YW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwg
Y29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29kZXJG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOCBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgY29uc3QgUEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6RGV2
aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwogICAg
IHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKaW5kZXggMmUyMTQ3NzNhNjVkYjRmNmM4YWQy
ODIxYWM2MzZhMDBhNWJmZjY4MS4uYTU5N2RmMDk2MTM2ZGIzNDI4YzJjNjdkNTJlYzk2MWZmYmNm
NjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRo
U3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURl
cHRoU3RlbmNpbFN0YXRlLmgKQEAgLTQ4LDYgKzQ4LDc1IEBAIHN0cnVjdCBEZXB0aFN0ZW5jaWxT
dGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OkRlcHRoQmlhcyBkZXB0aEJpYXM7CiAgICAgZmxvYXQg
ZGVwdGhCaWFzU2xvcGVTY2FsZTsKICAgICBmbG9hdCBkZXB0aEJpYXNDbGFtcDsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBk
ZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aENvbXBhcmU7CisgICAg
ICAgIGVuY29kZXIgPDwgc3RlbmNpbEZyb250OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxC
YWNrOworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkTWFzazsKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGVuY2lsV3JpdGVNYXNrOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoQmlhczsKKyAg
ICAgICAgZW5jb2RlciA8PCBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAgICBlbmNvZGVyIDw8
IGRlcHRoQmlhc0NsYW1wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICgh
Zm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IGRlcHRoV3JpdGVFbmFibGVkOworICAgICAgICBkZWNvZGVyID4+IGRl
cHRoV3JpdGVFbmFibGVkOworICAgICAgICBpZiAoIWRlcHRoV3JpdGVFbmFibGVkKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24+IGRlcHRoQ29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+
PiBkZXB0aENvbXBhcmU7CisgICAgICAgIGlmICghZGVwdGhDb21wYXJlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0ZW5jaWxGYWNl
U3RhdGU+IHN0ZW5jaWxGcm9udDsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsRnJvbnQ7Cisg
ICAgICAgIGlmICghc3RlbmNpbEZyb250KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0ZW5jaWxGYWNlU3RhdGU+IHN0ZW5jaWxCYWNr
OworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxCYWNrOworICAgICAgICBpZiAoIXN0ZW5jaWxC
YWNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZT4+IHN0ZW5jaWxS
ZWFkTWFzazsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE1hc2s7CisgICAgICAgIGlm
ICghc3RlbmNpbFJlYWRNYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxW
YWx1ZT4+IHN0ZW5jaWxXcml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFdyaXRl
TWFzazsKKyAgICAgICAgaWYgKCFzdGVuY2lsV3JpdGVNYXNrKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpEZXB0
aEJpYXM+IGRlcHRoQmlhczsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aEJpYXM7CisgICAgICAg
IGlmICghZGVwdGhCaWFzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAgICBk
ZWNvZGVyID4+IGRlcHRoQmlhc1Nsb3BlU2NhbGU7CisgICAgICAgIGlmICghZGVwdGhCaWFzU2xv
cGVTY2FsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gZGVwdGhCaWFzQ2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4gZGVw
dGhCaWFzQ2xhbXA7CisgICAgICAgIGlmICghZGVwdGhCaWFzQ2xhbXApCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZm9ybWF0
KSwgV1RGTW92ZSgqZGVwdGhXcml0ZUVuYWJsZWQpLCBXVEZNb3ZlKCpkZXB0aENvbXBhcmUpLCBX
VEZNb3ZlKCpzdGVuY2lsRnJvbnQpLCBXVEZNb3ZlKCpzdGVuY2lsQmFjayksIFdURk1vdmUoKnN0
ZW5jaWxSZWFkTWFzayksIFdURk1vdmUoKnN0ZW5jaWxXcml0ZU1hc2spLCBXVEZNb3ZlKCpkZXB0
aEJpYXMpLCBXVEZNb3ZlKCpkZXB0aEJpYXNTbG9wZVNjYWxlKSwgV1RGTW92ZSgqZGVwdGhCaWFz
Q2xhbXApIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlw
dG9yLmgKaW5kZXggODZhNGQ2OGZlZjcxNzNlNTVkNTYxM2JkNGE0Yjk1NmUwMzBmZTIyYi4uNmEy
NTIzNmRjODljNjY5ODkwNDc3ZWRkZDFkMjMzYTRiMmI0MjRjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCkBAIC0zNyw2
ICszNywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IERldmljZURlc2Ny
aXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxQQUw6Oldl
YkdQVTo6RmVhdHVyZU5hbWU+IHJlcXVpcmVkRmVhdHVyZXM7CiAgICAgLy8gRklYTUU6IEFkZCBz
dXBwb3J0IGZvciByZXF1aXJlZExpbWl0cy4KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOwor
ICAgICAgICBlbmNvZGVyIDw8IHJlcXVpcmVkRmVhdHVyZXM7CisgICAgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RGV2aWNlRGVzY3JpcHRvcj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9i
amVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9y
QmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPj4gcmVxdWlyZWRGZWF0dXJl
czsKKyAgICAgICAgZGVjb2RlciA+PiByZXF1aXJlZEZlYXR1cmVzOworICAgICAgICBpZiAoIXJl
cXVpcmVkRmVhdHVyZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpy
ZXF1aXJlZEZlYXR1cmVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVF
cnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzJlZDJiZGViMjQ3YmMyYTk3NzI4OTlmN2JjMGE1OThkNjY0NTQ4ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCkBAIC0w
LDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYkdQ
VU91dE9mTWVtb3J5RXJyb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCIK
KyNpbmNsdWRlIDx2YXJpYW50PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCit1c2lu
ZyBFcnJvciA9IHN0ZDo6dmFyaWFudDxPdXRPZk1lbW9yeUVycm9yLCBWYWxpZGF0aW9uRXJyb3I+
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAppbmRleCA0NzNjNGUxOThmNTM1NTI5MzZkZTgyYzk4
MGY2ZGQwOWM0MWNiMzFlLi4xOTM4MzQyMDk0MmI4ZjA0ZjY0ZGI2NmY4YWI2NWZhYzVmNTdiODg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaApAQCAt
MzUsNiArMzUsMzMgQEAgc3RydWN0IEV4dGVudDNERGljdCB7CiAgICAgUEFMOjpXZWJHUFU6Oklu
dGVnZXJDb29yZGluYXRlIHdpZHRoOwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0
ZSBoZWlnaHQ7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGRlcHRoT3JBcnJh
eUxheWVyczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHdpZHRoOworICAg
ICAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aE9yQXJyYXlM
YXllcnM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RXh0ZW50M0REaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7Cisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB3aWR0
aDsKKyAgICAgICAgZGVjb2RlciA+PiB3aWR0aDsKKyAgICAgICAgaWYgKCF3aWR0aCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGhlaWdodDsKKyAgICAgICAgZGVjb2RlciA+PiBo
ZWlnaHQ7CisgICAgICAgIGlmICghaGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZT4gZGVwdGhPckFycmF5TGF5ZXJzOworICAgICAgICBkZWNvZGVyID4+IGRlcHRoT3JBcnJh
eUxheWVyczsKKyAgICAgICAgaWYgKCFkZXB0aE9yQXJyYXlMYXllcnMpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqd2lkdGgp
LCBXVEZNb3ZlKCpoZWlnaHQpLCBXVEZNb3ZlKCpkZXB0aE9yQXJyYXlMYXllcnMpIH0gfTsKKyAg
ICB9CiB9OwogCiB1c2luZyBFeHRlbnQzRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8UEFMOjpXZWJH
UFU6OkludGVnZXJDb29yZGluYXRlPiwgRXh0ZW50M0REaWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmlu
ZGluZ0xheW91dC5oCmluZGV4IDUwZGFiZmEyNTE0NDQzYjMxZDU5N2RkYjZjMTJjYzU5MDYxYjNk
OGUuLjJkNWMyZmZkZGE4NGE2YTQ2MmE4ZDdjZDVkZDhhN2RhYzY3MmY3MTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5n
TGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFs
VGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMjgsNiArMjgsMTQgQEAKIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0IHsKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsgfSB9OworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaApp
bmRleCA2ZTgzMDFlM2UxZGUyOTUwYmUzMjA5NjMxNmFkZDY1YjZiNDIxMWYxLi45M2M3NDUxMmU0
MmU4NGZiNWYyMDZjNjcxYzY4MzY3ZWU0M2RkY2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
LmgKQEAgLTMyLDYgKzMyLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVj
dCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNl
IHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVj
dERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yU3BhY2U7
CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3RE
ZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UHJlZGVm
aW5lZENvbG9yU3BhY2U+IGNvbG9yU3BhY2U7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3JTcGFj
ZTsKKyAgICAgICAgaWYgKCFjb2xvclNwYWNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNl
KSwgV1RGTW92ZSgqY29sb3JTcGFjZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVRnJhZ21lbnRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUZyYWdtZW50U3RhdGUuaAppbmRleCBkZDRjYWIwODFkNWJiY2RiOTVhMjM4ZDQxYzJlYTUzZjhh
NGMxM2U5Li45Zjk2ZWUxNmRjYjZjYTQ3YWE4MmNjMjg0NjY5M2U5NjZlMWNlZjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmgKQEAg
LTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBGcmFn
bWVudFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBWZWN0b3I8Q29sb3JU
YXJnZXRTdGF0ZT4gdGFyZ2V0czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PGNvbnN0IFByb2dyYW1tYWJsZVN0YWdlJj4oKnRoaXMpOworICAgICAgICBl
bmNvZGVyIDw8IHRhcmdldHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RnJhZ21lbnRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBwcm9n
cmFtbWFibGVTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBwcm9ncmFtbWFibGVTdGFnZTsKKyAg
ICAgICAgaWYgKCFwcm9ncmFtbWFibGVTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29sb3JUYXJnZXRTdGF0ZT4+
IHRhcmdldHM7CisgICAgICAgIGRlY29kZXIgPj4gdGFyZ2V0czsKKyAgICAgICAgaWYgKCF0YXJn
ZXRzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKnByb2dyYW1tYWJsZVN0YWdlKSwgV1RGTW92ZSgqdGFyZ2V0cykgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKaW5kZXggMDM1
NGZjNTY2MTg2MDIwN2VhYzQ1NTRjMmJjNmQ2ZGI5MGQyNDA4My4uMTE4NjYwZTc3ZDY5NTY1OGI4
NzIyYjNlNDdlMmZhMmZmNWNlZTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaApAQCAtMzMsNiArMzMsMjcgQEAgbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUJ1ZmZlciA6IHB1YmxpYyBJ
bWFnZURhdGFMYXlvdXQgewogICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyOworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VEYXRhTGF5
b3V0Jj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlcjsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJbWFnZUNvcHlCdWZm
ZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxJbWFnZURhdGFMYXlvdXQ+IGltYWdlRGF0YUxheW91dDsKKyAgICAgICAgZGVjb2RlciA+PiBp
bWFnZURhdGFMYXlvdXQ7CisgICAgICAgIGlmICghaW1hZ2VEYXRhTGF5b3V0KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlk
ZW50aWZpZXI+IGJ1ZmZlcjsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXI7CisgICAgICAgIGlm
ICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmltYWdlRGF0YUxheW91dCksIFdURk1vdmUoKmJ1ZmZlcikgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFs
SW1hZ2UuaAppbmRleCAwNzExMGRiZDM4MGRjNjU3ZDE4MzdhNDQ2ZGM3ZTBlZDQwNmMwZGNlLi4x
ZTU1MjhiOWM1NGNjMWQ5N2RlZmZkYzE5MzJmMmVhMTEwOWE5Y2NiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbElt
YWdlLmgKQEAgLTMyLDggKzMyLDIzIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBz
dHJ1Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSB7Ci0gICAgLy8gc3RkOjp2YXJpYW50PFJlZlB0
cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+IHNvdXJjZTsKKyAgICAv
LyBGSVhNRTogSGFuZGxlIHRoZSBzb3VyY2UuCiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4yRD4g
b3JpZ2luOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3JpZ2luOworICAg
IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPElt
YWdlQ29weUV4dGVybmFsSW1hZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPE9yaWdpbjJEPj4gb3JpZ2luOworICAg
ICAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb3Jp
Z2luKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0
dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVy
ZS5oCmluZGV4IGJkNWM3MDRiMDRjZjQyNWIyMzI3MWJmMzAwZjcwNzQ3ZDVkOTI3ODguLjhhMjMw
NmE4NDQzMWZjZDU4MDExZjVlYzg4ZmE3YWEwYzQ4OTk3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaApAQCAtMzksNiAr
MzksMzkgQEAgc3RydWN0IEltYWdlQ29weVRleHR1cmUgewogICAgIFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZSBtaXBMZXZlbDsKICAgICBzdGQ6Om9wdGlvbmFsPE9yaWdpbjNEPiBvcmln
aW47CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QgYXNwZWN0OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBtaXBM
ZXZlbDsKKyAgICAgICAgZW5jb2RlciA8PCBvcmlnaW47CisgICAgICAgIGVuY29kZXIgPDwgYXNw
ZWN0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEltYWdlQ29weVRleHR1cmU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiB0ZXh0dXJlOworICAgICAg
ICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAgICAgIGlmICghdGV4dHVyZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6SW50ZWdlckNvb3JkaW5hdGU+IG1pcExldmVsOworICAgICAgICBkZWNvZGVyID4+IG1pcExl
dmVsOworICAgICAgICBpZiAoIW1pcExldmVsKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8T3JpZ2luM0Q+PiBv
cmlnaW47CisgICAgICAgIGRlY29kZXIgPj4gb3JpZ2luOworICAgICAgICBpZiAoIW9yaWdpbikK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdD4gYXNwZWN0OworICAgICAgICBkZWNvZGVyID4+
IGFzcGVjdDsKKyAgICAgICAgaWYgKCFhc3BlY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdGV4dHVyZSksIFdURk1vdmUo
Km1pcExldmVsKSwgV1RGTW92ZSgqb3JpZ2luKSwgV1RGTW92ZSgqYXNwZWN0KSB9IH07CisgICAg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5o
CmluZGV4IDU1NWFmMGUxYWJlZjYzNTI0YTc3YTA1ODc0MGNlZjE0NmJhZTIwYmQuLjg0OWJjNGU4
NjFjMzM2M2E2OTA5M2VjZmY5MWIwZjVkNTIwZTQ2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaApA
QCAtMzMsNiArMzMsMzMgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBJbWFn
ZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGljIEltYWdlQ29weVRleHR1cmUgewogICAgIFBBTDo6
V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlOwogICAgIGJvb2wgcHJlbXVs
dGlwbGllZEFscGhhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8Y29uc3QgSW1hZ2VDb3B5VGV4dHVyZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8
PCBjb2xvclNwYWNlOworICAgICAgICBlbmNvZGVyIDw8IHByZW11bHRpcGxpZWRBbHBoYTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJ
bWFnZUNvcHlUZXh0dXJlVGFnZ2VkPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7Cisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5VGV4dHVyZT4gaW1hZ2VDb3B5VGV4dHVyZTsK
KyAgICAgICAgZGVjb2RlciA+PiBpbWFnZUNvcHlUZXh0dXJlOworICAgICAgICBpZiAoIWltYWdl
Q29weVRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlPiBjb2xvclNw
YWNlOworICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7CisgICAgICAgIGlmICghY29sb3JT
cGFjZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxib29sPiBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAgICAgIGRlY29kZXIgPj4gcHJl
bXVsdGlwbGllZEFscGhhOworICAgICAgICBpZiAoIXByZW11bHRpcGxpZWRBbHBoYSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3Zl
KCppbWFnZUNvcHlUZXh0dXJlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSksIFdURk1vdmUoKnByZW11
bHRpcGxpZWRBbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VEYXRhTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VE
YXRhTGF5b3V0LmgKaW5kZXggMWU1ZGQwYTQ2NzE2ZDg4ZDBjZDdhMmE2Y2FhNzA5NzNkZmJmYjk3
NC4uY2U0Y2UzOTE0NzMwM2ZlNzBlMjdmNjlhYWJlMGNlNWMxYTE1N2IzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaApAQCAt
MzQsNiArMzQsMzMgQEAgc3RydWN0IEltYWdlRGF0YUxheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6
OlNpemU2NCBvZmZzZXQ7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBi
eXRlc1BlclJvdzsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHJvd3NQ
ZXJJbWFnZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9mZnNldDsKKyAg
ICAgICAgZW5jb2RlciA8PCBieXRlc1BlclJvdzsKKyAgICAgICAgZW5jb2RlciA8PCByb3dzUGVy
SW1hZ2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8SW1hZ2VEYXRhTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0OworICAg
ICAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gYnl0ZXNQZXJSb3c7CisgICAgICAgIGRlY29kZXIg
Pj4gYnl0ZXNQZXJSb3c7CisgICAgICAgIGlmICghYnl0ZXNQZXJSb3cpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gcm93c1BlckltYWdlOworICAgICAgICBkZWNvZGVyID4+
IHJvd3NQZXJJbWFnZTsKKyAgICAgICAgaWYgKCFyb3dzUGVySW1hZ2UpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2Zmc2V0
KSwgV1RGTW92ZSgqYnl0ZXNQZXJSb3cpLCBXVEZNb3ZlKCpyb3dzUGVySW1hZ2UpIH0gfTsKKyAg
ICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKaW5kZXggYmQx
MWJlMmVjMWVjMWIyZTQ3OTFjOWVkODMyYzlhYzAzMDNiMTc4YS4uOGRlNWQ1OGQ5ODMxOWY4ZDkx
ODg4ODZjNDQxMDA5NjAxYzNmOTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oCkBAIC0zMyw2ICszMywzMyBAQCBzdHJ1
Y3QgTXVsdGlzYW1wbGVTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBjb3VudDsKICAg
ICBQQUw6OldlYkdQVTo6U2FtcGxlTWFzayBtYXNrOwogICAgIGJvb2wgYWxwaGFUb0NvdmVyYWdl
RW5hYmxlZDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvdW50OworICAg
ICAgICBlbmNvZGVyIDw8IG1hc2s7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGFUb0NvdmVyYWdl
RW5hYmxlZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gY291bnQ7Cisg
ICAgICAgIGRlY29kZXIgPj4gY291bnQ7CisgICAgICAgIGlmICghY291bnQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OlNhbXBsZU1hc2s+IG1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gbWFzazsKKyAgICAgICAg
aWYgKCFtYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAgICAgIGRlY29k
ZXIgPj4gYWxwaGFUb0NvdmVyYWdlRW5hYmxlZDsKKyAgICAgICAgaWYgKCFhbHBoYVRvQ292ZXJh
Z2VFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqbWFzayksIFdURk1vdmUoKmFscGhh
VG9Db3ZlcmFnZUVuYWJsZWQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAppbmRleCAyMzg3OTAwYTQ2MTRkZjhmMGNjYmRlNzg2
OTc3YjkyMDdhOTUxZTY2Li40ZmNiOWY1NTg3NzZmNDNjMTY4YmU0MGUyNzIxNmI0ZTQ5MzBhMzZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2Jq
ZWN0RGVzY3JpcHRvckJhc2UuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKIAogc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBTdHJpbmcgbGFi
ZWw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBsYWJlbDsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPYmplY3RE
ZXNjcmlwdG9yQmFzZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gbGFiZWw7CisgICAgICAgIGRlY29kZXIgPj4gbGFiZWw7Cisg
ICAgICAgIGlmICghbGFiZWwpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbGFiZWwpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT3JpZ2luMkQuaAppbmRleCBmZGM2NjcxMDMwN2ViNDRkZDkxYmYxZTg3YzQ2NzRmMTg0
YzA2MDgyLi5kZjFmZmZkNTc4NDM5NTIzYmRjNzIxMTQzMzI3YjBjNmZlM2E3NzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaApAQCAtMzQsNiArMzQs
MjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBPcmlnaW4yRERpY3Qgewog
ICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4OwogICAgIFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZSB5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
eDsKKyAgICAgICAgZW5jb2RlciA8PCB5OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9yaWdpbjJERGljdD4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZT4geDsKKyAgICAgICAgZGVjb2RlciA+PiB4OworICAgICAgICBpZiAoIXgp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB5OworICAgICAgICBkZWNvZGVyID4+
IHk7CisgICAgICAgIGlmICgheSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgqeSkgfSB9OworICAgIH0K
IH07CiAKIHVzaW5nIE9yaWdpbjJEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxQQUw6OldlYkdQVTo6
SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4yRERpY3Q+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaAppbmRleCAzZTQ3NDI1MzVjODk0NjQ4MjM5MGUxZThm
NDRjZmIwZDBhNmFmYzhiLi5jZjc0NWE0MjA3NGFjYjIwZmU3NTE0NmMwZTk0NTMwZTY3NGM4ZTg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaApAQCAt
MzUsNiArMzUsMzMgQEAgc3RydWN0IE9yaWdpbjNERGljdCB7CiAgICAgUEFMOjpXZWJHUFU6Oklu
dGVnZXJDb29yZGluYXRlIHg7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHk7
CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHo7CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgZW5jb2RlciA8PCB4OworICAgICAgICBlbmNvZGVyIDw8IHk7CisgICAgICAgIGVu
Y29kZXIgPDwgejsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxPcmlnaW4zRERpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+
IHg7CisgICAgICAgIGRlY29kZXIgPj4geDsKKyAgICAgICAgaWYgKCF4KQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZT4geTsKKyAgICAgICAgZGVjb2RlciA+PiB5OworICAgICAgICBp
ZiAoIXkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB6OworICAgICAgICBkZWNv
ZGVyID4+IHo7CisgICAgICAgIGlmICgheikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgqeSksIFdURk1v
dmUoKnopIH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBPcmlnaW4zRCA9IHN0ZDo6dmFyaWFudDxW
ZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luM0REaWN0PjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVy
cm9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZjNjkzNTc1NzFhZjE3ZWY5ZTdmNzY0MjM4NzdmZjM0ODRhYTY2NWEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0
T2ZNZW1vcnlFcnJvci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0IE91dE9mTWVtb3J5RXJy
b3IgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE91dE9mTWVtb3J5RXJyb3I+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgeyB9IH07CisgICAgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCmluZGV4IGUyNDky
YWUwOThjZWRmODhjZWJjZGU5YTQwMzg4MTA4YmRhNzY5YjMuLjVjNGI3MDc5MDA1MWNmYzFmN2M1
NTk1MTY2OGI5ZjQ1YjA1NWUyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaApAQCAtMzIsNiArMzIs
MjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IFBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdlYkdQVUlkZW50
aWZpZXIgbGF5b3V0OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29k
ZXIgPDwgbGF5b3V0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFBpcGVsaW5lRGVzY3JpcHRvckJhc2U+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFz
ZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3Jp
cHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRl
bnRpZmllcj4gbGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IGxheW91dDsKKyAgICAgICAgaWYg
KCFsYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpsYXlvdXQp
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVz
Y3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5oCmluZGV4IDY0MTczMGViYTY5OWQ3YmUyZTkwZDFjMDRkYzkyZTEyN2Rl
MTI3YmYuLjgwYTIwMTdmYmNmOWQ4NGVlMzQwMjQ5N2E2Y2JiNDc5ODZmMDU3N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2Ny
aXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CiAKIHN0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiBiaW5kR3JvdXBM
YXlvdXRzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwg
YmluZEdyb3VwTGF5b3V0czsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlw
dG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0
RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFdlYkdQVUlkZW50aWZpZXI+PiBiaW5kR3JvdXBMYXlvdXRzOworICAgICAgICBkZWNvZGVy
ID4+IGJpbmRHcm91cExheW91dHM7CisgICAgICAgIGlmICghYmluZEdyb3VwTGF5b3V0cykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmJpbmRHcm91cExheW91dHMpIH0g
fTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAppbmRleCBi
ODY4NzViYjUxZWY0YzkzNzJkOGYyNWQyYWIzMzU5MjYxNWI3NGIzLi5kMTgyMzMyMjNkOTcwYThm
MDk5MDYyNTg3ODExNWFhNDc1NGI0ODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaApAQCAtNDIsNiArNDIsNDUgQEAgc3RydWN0
IFByaW1pdGl2ZVN0YXRlIHsKIAogICAgIC8vIFJlcXVpcmVzICJkZXB0aC1jbGlwLWNvbnRyb2wi
IGZlYXR1cmUuCiAgICAgYm9vbCB1bmNsaXBwZWREZXB0aDsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHRvcG9sb2d5OworICAgICAgICBlbmNvZGVyIDw8IHN0cmlwSW5kZXhG
b3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgZnJvbnRGYWNlOworICAgICAgICBlbmNvZGVyIDw8
IGN1bGxNb2RlOworICAgICAgICBlbmNvZGVyIDw8IHVuY2xpcHBlZERlcHRoOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByaW1pdGl2
ZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB0b3BvbG9neTsKKyAgICAgICAg
ZGVjb2RlciA+PiB0b3BvbG9neTsKKyAgICAgICAgaWYgKCF0b3BvbG9neSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4+IHN0cmlwSW5kZXhGb3JtYXQ7CisgICAgICAg
IGRlY29kZXIgPj4gc3RyaXBJbmRleEZvcm1hdDsKKyAgICAgICAgaWYgKCFzdHJpcEluZGV4Rm9y
bWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpGcm9udEZhY2U+IGZyb250RmFjZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBmcm9udEZhY2U7CisgICAgICAgIGlmICghZnJvbnRGYWNlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpD
dWxsTW9kZT4gY3VsbE1vZGU7CisgICAgICAgIGRlY29kZXIgPj4gY3VsbE1vZGU7CisgICAgICAg
IGlmICghY3VsbE1vZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAgIGRlY29kZXIg
Pj4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAgIGlmICghdW5jbGlwcGVkRGVwdGgpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
dG9wb2xvZ3kpLCBXVEZNb3ZlKCpzdHJpcEluZGV4Rm9ybWF0KSwgV1RGTW92ZSgqZnJvbnRGYWNl
KSwgV1RGTW92ZSgqY3VsbE1vZGUpLCBXVEZNb3ZlKCp1bmNsaXBwZWREZXB0aCkgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCmluZGV4IGM1
YjQxNjgwNmE5Y2ZjY2ZkYTJmMGYwYmQ2MjM3NjIzMjY0ODIyNzAuLmUxZjBhZTBkNjlmMjliYjlm
Zjc4MmVlZDYyZDM2ZDM4NTdjMTlmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCkBAIC0zOCw2ICszOCwzMyBAQCBz
dHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFdlYkdQVUlkZW50aWZpZXIgbW9kdWxlOwog
ICAgIFN0cmluZyBlbnRyeVBvaW50OwogICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBQ
aXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgZW5jb2RlciA8PCBtb2R1bGU7CisgICAgICAgIGVuY29kZXIgPDwgZW50cnlQb2ludDsKKyAg
ICAgICAgZW5jb2RlciA8PCBjb25zdGFudHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVu
dGlmaWVyPiBtb2R1bGU7CisgICAgICAgIGRlY29kZXIgPj4gbW9kdWxlOworICAgICAgICBpZiAo
IW1vZHVsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IGVudHJ5UG9pbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZW50cnlQ
b2ludDsKKyAgICAgICAgaWYgKCFlbnRyeVBvaW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBQaXBlbGluZUNvbnN0YW50VmFsdWU+Pj4gY29uc3RhbnRzOworICAgICAgICBkZWNvZGVy
ID4+IGNvbnN0YW50czsKKyAgICAgICAgaWYgKCFjb25zdGFudHMpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbW9kdWxlKSwg
V1RGTW92ZSgqZW50cnlQb2ludCksIFdURk1vdmUoKmNvbnN0YW50cykgfSB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKaW5kZXggY2Q0NWI2
NjEwYTdjMDg3NTVjYmVhNTQyYWViMTBiNjAyODg1NzMyMi4uYmUxMTJkOTI1NjY1ZGJhNGEwMjNh
ZjQ3ZWVkOWY4MjRhYjkzYjljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaApAQCAtMzcsNiArMzcsMzkgQEAgc3Ry
dWN0IFF1ZXJ5U2V0RGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAg
ICAgUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZSB0eXBlOwogICAgIFBBTDo6V2ViR1BVOjpTaXplMzIg
Y291bnQ7CiAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU+IHBp
cGVsaW5lU3RhdGlzdGljczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBl
bmNvZGVyIDw8IHR5cGU7CisgICAgICAgIGVuY29kZXIgPDwgY291bnQ7CisgICAgICAgIGVuY29k
ZXIgPDwgcGlwZWxpbmVTdGF0aXN0aWNzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFF1ZXJ5U2V0RGVzY3JpcHRvcj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2Ny
aXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6UXVlcnlUeXBlPiB0eXBlOworICAgICAgICBkZWNvZGVyID4+IHR5cGU7Cisg
ICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBjb3VudDsKKyAgICAgICAg
ZGVjb2RlciA+PiBjb3VudDsKKyAgICAgICAgaWYgKCFjb3VudCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJH
UFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZT4+IHBpcGVsaW5lU3RhdGlzdGljczsKKyAgICAgICAg
ZGVjb2RlciA+PiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAgIGlmICghcGlwZWxpbmVTdGF0
aXN0aWNzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqdHlwZSksIFdU
Rk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqcGlwZWxpbmVTdGF0aXN0aWNzKSB9IH07CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oCmlu
ZGV4IDA4MWJhNjRiMGUxZDkyYTRiOTA3MDdmZTc0MmFlNzEyYzVkNDY0YjMuLmMwOTYyODA3NjQx
YmY5Y2E0MDFkODEyYmEyMDAzMWIyZWE5MDBhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaApAQCAt
MzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBSZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNj
cmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVj
dERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1v
dmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKaW5kZXgg
NTQxNzkxOWNiZDdhYjI1YmU4YmQ4ZWMxOGRjMDNjMGI1ZDU3MTljYy4uZTI5Y2Q1NGI5NWNhNDBh
YzBhZDhiZTU5ZTc0ODMyZDJkZThkYjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlw
dG9yLmgKQEAgLTMyLDYgKzMyLDMzIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1
Y3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgUmVuZGVyUGFzc0xheW91
dCB7CiAgICAgYm9vbCBkZXB0aFJlYWRPbmx5OwogICAgIGJvb2wgc3RlbmNpbFJlYWRPbmx5Owor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUmVu
ZGVyUGFzc0xheW91dCY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFJlYWRPbmx5
OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkT25seTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVFbmNv
ZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NMYXlvdXQ+IHJlbmRlclBhc3NMYXlvdXQ7CisgICAgICAg
IGRlY29kZXIgPj4gcmVuZGVyUGFzc0xheW91dDsKKyAgICAgICAgaWYgKCFyZW5kZXJQYXNzTGF5
b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPGJvb2w+IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhSZWFk
T25seTsKKyAgICAgICAgaWYgKCFkZXB0aFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN0ZW5jaWxSZWFkT25s
eTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE9ubHk7CisgICAgICAgIGlmICghc3Rl
bmNpbFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKnJlbmRlclBhc3NMYXlvdXQpLCBXVEZNb3ZlKCpkZXB0aFJl
YWRPbmx5KSwgV1RGTW92ZSgqc3RlbmNpbFJlYWRPbmx5KSB9IH07CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCmluZGV4
IGUwZjNjODkzYjFjYmE3MTMwOGY3OGM4Yzc2MjUyMThkNGIzMjcwMTMuLmIwZDg5MjdlZjJiYThh
MzBiOWVhNmI2ZDVkZjQ3ZTE0ODY0ZWM3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaApA
QCAtNDEsNiArNDEsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQgewogCiAg
ICAgc3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxkb3VibGU+LCBDb2xv
ckRpY3Q+IGxvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBzdG9yZU9wOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdmlldzsKKyAgICAgICAgZW5jb2RlciA8
PCByZXNvbHZlVGFyZ2V0OworICAgICAgICBlbmNvZGVyIDw8IGxvYWRWYWx1ZTsKKyAgICAgICAg
ZW5jb2RlciA8PCBzdG9yZU9wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVu
dGlmaWVyPiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAgIGlmICghdmll
dykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxXZWJHUFVJZGVudGlmaWVyPiByZXNvbHZlVGFyZ2V0OworICAgICAgICBkZWNvZGVyID4+
IHJlc29sdmVUYXJnZXQ7CisgICAgICAgIGlmICghcmVzb2x2ZVRhcmdldCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlh
bnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIENvbG9yRGljdD4+IGxvYWRW
YWx1ZTsKKyAgICAgICAgZGVjb2RlciA+PiBsb2FkVmFsdWU7CisgICAgICAgIGlmICghbG9hZFZh
bHVlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpTdG9yZU9wPiBzdG9yZU9wOworICAgICAgICBkZWNvZGVyID4+
IHN0b3JlT3A7CisgICAgICAgIGlmICghc3RvcmVPcCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp2aWV3KSwgV1RGTW92ZSgq
cmVzb2x2ZVRhcmdldCksIFdURk1vdmUoKmxvYWRWYWx1ZSksIFdURk1vdmUoKnN0b3JlT3ApIH0g
fTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5j
aWxBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAppbmRleCA2OGE0ODRiMDMzZDIxNTIxYmRkMzYz
ZmZiYjcwZGEzZjhmMzk4ZGZiLi5lODJlZDZjODFlOGFjYTc4NWM4MDU4YzAzMjQyNmVlNWYwYzJi
YjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaApAQCAtNDQsNiAr
NDQsNTcgQEAgc3RydWN0IFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50IHsKICAgICBz
dGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1
ZT4gc3RlbmNpbExvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBzdGVuY2lsU3Rv
cmVPcDsKICAgICBib29sIHN0ZW5jaWxSZWFkT25seTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBlbmNvZGVyIDw8IHZpZXc7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhMb2FkVmFsdWU7Cisg
ICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdG9yZU9wOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRo
UmVhZE9ubHk7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbExvYWRWYWx1ZTsKKyAgICAgICAg
ZW5jb2RlciA8PCBzdGVuY2lsU3RvcmVPcDsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsUmVh
ZE9ubHk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVy
PiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAgIGlmICghdmlldykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxz
dGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+PiBkZXB0aExvYWRWYWx1ZTsK
KyAgICAgICAgZGVjb2RlciA+PiBkZXB0aExvYWRWYWx1ZTsKKyAgICAgICAgaWYgKCFkZXB0aExv
YWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gZGVwdGhTdG9yZU9wOworICAgICAgICBk
ZWNvZGVyID4+IGRlcHRoU3RvcmVPcDsKKyAgICAgICAgaWYgKCFkZXB0aFN0b3JlT3ApCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9v
bD4gZGVwdGhSZWFkT25seTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFJlYWRPbmx5OworICAg
ICAgICBpZiAoIWRlcHRoUmVhZE9ubHkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2Fk
T3AsIFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+PiBzdGVuY2lsTG9hZFZhbHVlOworICAgICAg
ICBkZWNvZGVyID4+IHN0ZW5jaWxMb2FkVmFsdWU7CisgICAgICAgIGlmICghc3RlbmNpbExvYWRW
YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gc3RlbmNpbFN0b3JlT3A7CisgICAgICAgIGRl
Y29kZXIgPj4gc3RlbmNpbFN0b3JlT3A7CisgICAgICAgIGlmICghc3RlbmNpbFN0b3JlT3ApCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gc3RlbmNpbFJlYWRPbmx5OworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxSZWFkT25s
eTsKKyAgICAgICAgaWYgKCFzdGVuY2lsUmVhZE9ubHkpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdmlldyksIFdURk1vdmUo
KmRlcHRoTG9hZFZhbHVlKSwgV1RGTW92ZSgqZGVwdGhTdG9yZU9wKSwgV1RGTW92ZSgqZGVwdGhS
ZWFkT25seSksIFdURk1vdmUoKnN0ZW5jaWxMb2FkVmFsdWUpLCBXVEZNb3ZlKCpzdGVuY2lsU3Rv
cmVPcCksIFdURk1vdmUoKnN0ZW5jaWxSZWFkT25seSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCmluZGV4IDg3ZTgxMGEyYjVl
NzNmNTdhYjlkOTBmYjNjNzJiZDFlN2FkMjE3YjQuLmJhNGNlZTIxMGNhMDBiZWI5ZThiODc3ZmY3
OTcyNmM0NWZiZDgxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCkBAIC00MCw2ICs0MCw0NSBAQCBzdHJ1
Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ugewog
ICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IGRlcHRo
U3RlbmNpbEF0dGFjaG1lbnQ7CiAgICAgV2ViR1BVSWRlbnRpZmllciBvY2NsdXNpb25RdWVyeVNl
dDsKICAgICBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVzdGFtcFdyaXRlczsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERl
c2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yQXR0YWNobWVu
dHM7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdGVuY2lsQXR0YWNobWVudDsKKyAgICAgICAg
ZW5jb2RlciA8PCBvY2NsdXNpb25RdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1lc3Rh
bXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0Rlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJh
c2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlbmRlclBh
c3NDb2xvckF0dGFjaG1lbnQ+PiBjb2xvckF0dGFjaG1lbnRzOworICAgICAgICBkZWNvZGVyID4+
IGNvbG9yQXR0YWNobWVudHM7CisgICAgICAgIGlmICghY29sb3JBdHRhY2htZW50cykKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6
Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Pj4gZGVwdGhTdGVuY2ls
QXR0YWNobWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFN0ZW5jaWxBdHRhY2htZW50Owor
ICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4g
b2NjbHVzaW9uUXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2NjbHVzaW9uUXVlcnlTZXQ7
CisgICAgICAgIGlmICghb2NjbHVzaW9uUXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1RpbWVzdGFtcFdy
aXRlcz4gdGltZXN0YW1wV3JpdGVzOworICAgICAgICBkZWNvZGVyID4+IHRpbWVzdGFtcFdyaXRl
czsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRv
ckJhc2UpLCBXVEZNb3ZlKCpjb2xvckF0dGFjaG1lbnRzKSwgV1RGTW92ZSgqZGVwdGhTdGVuY2ls
QXR0YWNobWVudCksIFdURk1vdmUoKm9jY2x1c2lvblF1ZXJ5U2V0KSwgV1RGTW92ZSgqdGltZXN0
YW1wV3JpdGVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQ
YXNzTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFz
c0xheW91dC5oCmluZGV4IGExNzJlZTI1Y2VhMTVlZGU3M2M1NGEzN2ZhZjc1Yzc3YzU4MjQ4ZDEu
LjRlZTMxZWUzNmFjYmU5Y2M3ZDRmOGJhMGQ1YjYyZGIzN2E3MTQzOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaApAQCAt
MzcsNiArMzcsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NMYXlvdXQgOiBwdWJsaWMgT2JqZWN0RGVz
Y3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gY29s
b3JGb3JtYXRzOwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+
IGRlcHRoU3RlbmNpbEZvcm1hdDsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIHNhbXBsZUNvdW50
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3Qg
T2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgY29sb3JG
b3JtYXRzOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbEZvcm1hdDsKKyAgICAgICAg
ZW5jb2RlciA8PCBzYW1wbGVDb3VudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRv
ckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERl
c2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4+IGNvbG9yRm9ybWF0czsKKyAgICAgICAgZGVj
b2RlciA+PiBjb2xvckZvcm1hdHM7CisgICAgICAgIGlmICghY29sb3JGb3JtYXRzKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+PiBkZXB0aFN0ZW5jaWxGb3JtYXQ7
CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhTdGVuY2lsRm9ybWF0OworICAgICAgICBpZiAoIWRl
cHRoU3RlbmNpbEZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBzYW1wbGVDb3VudDsKKyAg
ICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3VudDsKKyAgICAgICAgaWYgKCFzYW1wbGVDb3VudCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBX
VEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmNvbG9yRm9ybWF0cyksIFdU
Rk1vdmUoKmRlcHRoU3RlbmNpbEZvcm1hdCksIFdURk1vdmUoKnNhbXBsZUNvdW50KSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFt
cFdyaXRlcy5oCmluZGV4IDhiMWViYTc0NjVmMTc2NTlmODBjOGExMjFlMmExZWY4ZWNhMTU5ZDQu
LjhiOTI2M2E3YzQ4MGQwODMxZjU0NDk5NmZlZTExYjI3MDRlNGVhZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1l
c3RhbXBXcml0ZXMuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IFJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQQUw6OldlYkdQ
VTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3Rh
bXBMb2NhdGlvbiBsb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IHF1ZXJ5U2V0OworICAgICAgICBlbmNvZGVyIDw8IHF1ZXJ5SW5kZXg7CisgICAgICAgIGVuY29k
ZXIgPDwgbG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmll
cj4gcXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gcXVlcnlTZXQ7CisgICAgICAgIGlmICgh
cXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gcXVlcnlJbmRleDsKKyAgICAgICAgZGVj
b2RlciA+PiBxdWVyeUluZGV4OworICAgICAgICBpZiAoIXF1ZXJ5SW5kZXgpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247CisgICAgICAgIGRlY29k
ZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcXVlcnlTZXQp
LCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0gfTsKKyAgICB9CiB9
OwogCiB1c2luZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9yPFJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggOWEyNzFjNzNkNTM1
MTgzYjA4NjE2YzNiNjcyODYyODUzZmQ2ZmM4ZC4uNmMyZWY3MzA5MmFhMjRjYWYzZDU5NDE3YjRj
YjA2MWE5OTJlZjEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtNDEsNiArNDEsNTEg
QEAgc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBlbGluZURlc2Ny
aXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPiBkZXB0aFN0
ZW5jaWw7CiAgICAgc3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBtdWx0aXNhbXBsZTsK
ICAgICBzdGQ6Om9wdGlvbmFsPEZyYWdtZW50U3RhdGU+IGZyYWdtZW50OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB2ZXJ0ZXg7CisgICAgICAgIGVu
Y29kZXIgPDwgcHJpbWl0aXZlOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbDsKKyAg
ICAgICAgZW5jb2RlciA8PCBtdWx0aXNhbXBsZTsKKyAgICAgICAgZW5jb2RlciA8PCBmcmFnbWVu
dDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JCYXNlPiBwaXBl
bGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IHBpcGVsaW5lRGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIGlmICghcGlwZWxpbmVEZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZXJ0ZXhTdGF0
ZT4gdmVydGV4OworICAgICAgICBkZWNvZGVyID4+IHZlcnRleDsKKyAgICAgICAgaWYgKCF2ZXJ0
ZXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxQcmltaXRpdmVTdGF0ZT4+IHByaW1pdGl2ZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBwcmltaXRpdmU7CisgICAgICAgIGlmICghcHJpbWl0aXZlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0
aW9uYWw8RGVwdGhTdGVuY2lsU3RhdGU+PiBkZXB0aFN0ZW5jaWw7CisgICAgICAgIGRlY29kZXIg
Pj4gZGVwdGhTdGVuY2lsOworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlv
bmFsPE11bHRpc2FtcGxlU3RhdGU+PiBtdWx0aXNhbXBsZTsKKyAgICAgICAgZGVjb2RlciA+PiBt
dWx0aXNhbXBsZTsKKyAgICAgICAgaWYgKCFtdWx0aXNhbXBsZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEZy
YWdtZW50U3RhdGU+PiBmcmFnbWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBmcmFnbWVudDsKKyAg
ICAgICAgaWYgKCFmcmFnbWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwaXBlbGluZURlc2NyaXB0b3JCYXNlKSwgV1RG
TW92ZSgqdmVydGV4KSwgV1RGTW92ZSgqcHJpbWl0aXZlKSwgV1RGTW92ZSgqZGVwdGhTdGVuY2ls
KSwgV1RGTW92ZSgqbXVsdGlzYW1wbGUpLCBXVEZNb3ZlKCpmcmFnbWVudCkgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgKaW5k
ZXggYTkxNzhkNjE3NzIzNzM2NzM4ZmYwZDYwZmQzNTBlZjMxZDNmY2VjOS4uMDZiMDMxYzcxMmVk
ZTg3ZjU4NTlhM2Q1M2IzYjQ2ZWQ1OTExMjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaApAQCAtMzMs
NiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBSZXF1ZXN0QWRh
cHRlck9wdGlvbnMgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVy
ZW5jZT4gcG93ZXJQcmVmZXJlbmNlOwogICAgIGJvb2wgZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBwb3dlclByZWZlcmVuY2U7CisgICAg
ICAgIGVuY29kZXIgPDwgZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEFkYXB0ZXJPcHRp
b25zPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPj4gcG93ZXJQcmVm
ZXJlbmNlOworICAgICAgICBkZWNvZGVyID4+IHBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAgaWYg
KCFwb3dlclByZWZlcmVuY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgICAg
IGRlY29kZXIgPj4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgICAgIGlmICghZm9yY2VGYWxs
YmFja0FkYXB0ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqcG93ZXJQcmVmZXJlbmNlKSwgV1RGTW92ZSgqZm9yY2VGYWxs
YmFja0FkYXB0ZXIpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2Ft
cGxlckJpbmRpbmdMYXlvdXQuaAppbmRleCA5MGVhOTg3YTExODYzZTNjMTE3ZDI2OTVjNTM3NmU1
YzA0NGY0MjRmLi45NTkyMWVhNTg3NDU1M2Q4ZmJmMGNkNWE1M2I0ZDAwNTAwNmUzMmYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdM
YXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJp
bmRpbmdMYXlvdXQuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIAogc3RydWN0IFNhbXBsZXJCaW5kaW5nTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U2Ft
cGxlckJpbmRpbmdUeXBlIHR5cGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFNhbXBsZXJCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5n
VHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAgICBpZiAoIXR5cGUp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqdHlwZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2Ft
cGxlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1w
bGVyRGVzY3JpcHRvci5oCmluZGV4IGQ3Yzc0N2E5NDc1NmNjYjQwM2RmM2ZlNTVmMWI1MzhmNTcy
MTgxMjAuLmI4ZDg1OTQ4NzE0MmJjY2ZhYzUxMTVmOWJmYWQ5ZTM5Y2IwYzUzYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRv
ci5oCkBAIC00NSw2ICs0NSw4MSBAQCBzdHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3IgOiBwdWJsaWMg
T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIGZsb2F0IGxvZE1heENsYW1wOwogICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4gY29tcGFyZTsKICAgICB1aW50
MTZfdCBtYXhBbmlzb3Ryb3B5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAg
IGVuY29kZXIgPDwgYWRkcmVzc01vZGVVOworICAgICAgICBlbmNvZGVyIDw8IGFkZHJlc3NNb2Rl
VjsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRyZXNzTW9kZVc7CisgICAgICAgIGVuY29kZXIgPDwg
bWFnRmlsdGVyOworICAgICAgICBlbmNvZGVyIDw8IG1pbkZpbHRlcjsKKyAgICAgICAgZW5jb2Rl
ciA8PCBtaXBtYXBGaWx0ZXI7CisgICAgICAgIGVuY29kZXIgPDwgbG9kTWluQ2xhbXA7CisgICAg
ICAgIGVuY29kZXIgPDwgbG9kTWF4Q2xhbXA7CisgICAgICAgIGVuY29kZXIgPDwgY29tcGFyZTsK
KyAgICAgICAgZW5jb2RlciA8PCBtYXhBbmlzb3Ryb3B5OworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNhbXBsZXJEZXNjcmlwdG9yPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2Jq
ZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVy
ID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JC
YXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZT4gYWRkcmVzc01vZGVVOworICAgICAgICBk
ZWNvZGVyID4+IGFkZHJlc3NNb2RlVTsKKyAgICAgICAgaWYgKCFhZGRyZXNzTW9kZVUpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkFkZHJlc3NNb2RlPiBhZGRyZXNzTW9kZVY7CisgICAgICAgIGRlY29kZXIgPj4g
YWRkcmVzc01vZGVWOworICAgICAgICBpZiAoIWFkZHJlc3NNb2RlVikKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
QWRkcmVzc01vZGU+IGFkZHJlc3NNb2RlVzsKKyAgICAgICAgZGVjb2RlciA+PiBhZGRyZXNzTW9k
ZVc7CisgICAgICAgIGlmICghYWRkcmVzc01vZGVXKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGaWx0ZXJNb2Rl
PiBtYWdGaWx0ZXI7CisgICAgICAgIGRlY29kZXIgPj4gbWFnRmlsdGVyOworICAgICAgICBpZiAo
IW1hZ0ZpbHRlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RmlsdGVyTW9kZT4gbWluRmlsdGVyOworICAgICAg
ICBkZWNvZGVyID4+IG1pbkZpbHRlcjsKKyAgICAgICAgaWYgKCFtaW5GaWx0ZXIpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkZpbHRlck1vZGU+IG1pcG1hcEZpbHRlcjsKKyAgICAgICAgZGVjb2RlciA+PiBtaXBt
YXBGaWx0ZXI7CisgICAgICAgIGlmICghbWlwbWFwRmlsdGVyKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsb2RNaW5DbGFt
cDsKKyAgICAgICAgZGVjb2RlciA+PiBsb2RNaW5DbGFtcDsKKyAgICAgICAgaWYgKCFsb2RNaW5D
bGFtcCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxmbG9hdD4gbG9kTWF4Q2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4gbG9kTWF4Q2xh
bXA7CisgICAgICAgIGlmICghbG9kTWF4Q2xhbXApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6Q29tcGFyZUZ1bmN0aW9uPj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21wYXJl
OworICAgICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IG1heEFuaXNvdHJvcHk7CisgICAg
ICAgIGRlY29kZXIgPj4gbWF4QW5pc290cm9weTsKKyAgICAgICAgaWYgKCFtYXhBbmlzb3Ryb3B5
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7
IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVVKSwg
V1RGTW92ZSgqYWRkcmVzc01vZGVWKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVXKSwgV1RGTW92ZSgq
bWFnRmlsdGVyKSwgV1RGTW92ZSgqbWluRmlsdGVyKSwgV1RGTW92ZSgqbWlwbWFwRmlsdGVyKSwg
V1RGTW92ZSgqbG9kTWluQ2xhbXApLCBXVEZNb3ZlKCpsb2RNYXhDbGFtcCksIFdURk1vdmUoKmNv
bXBhcmUpLCBXVEZNb3ZlKCptYXhBbmlzb3Ryb3B5KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCmluZGV4IDdjMWRhZmZj
YmZmNWUyODRmMGQ5NzkyZjI0ODY1Yzg4Y2U1MDJmYmQuLmRkNzc4NmNlOGI5NjYxMTZkMjY5YTI1
MTBhNWYyZjgyMjljMTcwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaApAQCAtMzMsNiArMzMsMjcg
QEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBTdHJpbmcgY29kZTsKICAg
ICAvLyBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBzb3VyY2VNYXA7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9y
QmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2RlOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYWRlck1vZHVsZURl
c2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAg
ICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0
RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb2RlOworICAgICAgICBkZWNvZGVyID4+IGNvZGU7
CisgICAgICAgIGlmICghY29kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1v
dmUoKmNvZGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxG
YWNlU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFj
ZVN0YXRlLmgKaW5kZXggNjVhNmIzYWE5YTU0N2YzMjY2MDI0MDAyMzkwNjE4MWZjMTVhZWMzMS4u
ZTQwMWI2NGNkMzUyZmZhZDBmNmE1NDg3NTcxMzI1OTcyZDM4MjQ4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oCkBAIC0z
NSw2ICszNSwzOSBAQCBzdHJ1Y3QgU3RlbmNpbEZhY2VTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6
OlN0ZW5jaWxPcGVyYXRpb24gZmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0
aW9uIGRlcHRoRmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uIHBhc3NP
cDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvbXBhcmU7CisgICAgICAg
IGVuY29kZXIgPDwgZmFpbE9wOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoRmFpbE9wOworICAg
ICAgICBlbmNvZGVyIDw8IHBhc3NPcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRlPiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNv
bXBhcmVGdW5jdGlvbj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21wYXJlOworICAg
ICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24+IGZhaWxP
cDsKKyAgICAgICAgZGVjb2RlciA+PiBmYWlsT3A7CisgICAgICAgIGlmICghZmFpbE9wKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uPiBkZXB0aEZhaWxPcDsKKyAgICAgICAgZGVjb2Rl
ciA+PiBkZXB0aEZhaWxPcDsKKyAgICAgICAgaWYgKCFkZXB0aEZhaWxPcCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6U3RlbmNpbE9wZXJhdGlvbj4gcGFzc09wOworICAgICAgICBkZWNvZGVyID4+IHBhc3NPcDsK
KyAgICAgICAgaWYgKCFwYXNzT3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29tcGFyZSksIFdURk1vdmUoKmZhaWxPcCks
IFdURk1vdmUoKmRlcHRoRmFpbE9wKSwgV1RGTW92ZSgqcGFzc09wKSB9IH07CisgICAgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaAppbmRleCBmMzEwMzA2MWIwNmZlMDYyY2VlYzAzMTFkMjBlMDM1Mjk2OWMwOGZiLi5jMjVi
MWFmMzQxYWFhMDcwMTU5NjAwNTU4ZTNjYjY2NzAwMTgzYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmlu
ZGluZ0xheW91dC5oCkBAIC0zNSw2ICszNSwzMyBAQCBzdHJ1Y3QgU3RvcmFnZVRleHR1cmVCaW5k
aW5nTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3MgYWNjZXNz
OwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZVZpZXdEaW1lbnNpb24gdmlld0RpbWVuc2lvbjsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgewor
ICAgICAgICBlbmNvZGVyIDw8IGFjY2VzczsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7Cisg
ICAgICAgIGVuY29kZXIgPDwgdmlld0RpbWVuc2lvbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M+IGFjY2VzczsKKyAgICAgICAg
ZGVjb2RlciA+PiBhY2Nlc3M7CisgICAgICAgIGlmICghYWNjZXNzKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAg
ICBpZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHZpZXdE
aW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsKKyAgICAgICAgaWYg
KCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKmFjY2VzcyksIFdURk1vdmUoKmZvcm1hdCksIFdURk1v
dmUoKnZpZXdEaW1lbnNpb24pIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVN1cHBvcnRlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U3VwcG9ydGVkRmVhdHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGYzODkwM2UwNzI0MzIzOTE4MzZjMjY2
MzMzZmM1OTViZGM3NjIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitz
dHJ1Y3QgU3VwcG9ydGVkRmVhdHVyZXMgeworICAgIFZlY3RvcjxTdHJpbmc+IGZlYXR1cmVzOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgZmVhdHVyZXM7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVk
RmVhdHVyZXM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gZmVhdHVyZXM7CisgICAgICAgIGRlY29kZXIgPj4gZmVh
dHVyZXM7CisgICAgICAgIGlmICghZmVhdHVyZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZmVhdHVyZXMpIH0gfTsKKyAg
ICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZhY2EwM2VkNGZlZTM1MTY2ODU5MzdiY2UxZDZkZmQyYTJjOTZkNTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgK
QEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PGNzdGRpbnQ+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0cnVjdCBTdXBwb3J0
ZWRMaW1pdHMgeworICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24xRCB7IDAgfTsKKyAg
ICB1aW50MzJfdCBtYXhUZXh0dXJlRGltZW5zaW9uMkQgeyAwIH07CisgICAgdWludDMyX3QgbWF4
VGV4dHVyZURpbWVuc2lvbjNEIHsgMCB9OworICAgIHVpbnQzMl90IG1heFRleHR1cmVBcnJheUxh
eWVycyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhCaW5kR3JvdXBzIHsgMCB9OworICAgIHVpbnQz
Ml90IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IHsgMCB9OworICAg
IHVpbnQzMl90IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IHsgMCB9
OworICAgIHVpbnQzMl90IG1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdlIHsgMCB9Owor
ICAgIHVpbnQzMl90IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UgeyAwIH07CisgICAgdWludDMy
X3QgbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50MzJfdCBt
YXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhV
bmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlIHsgMCB9OworICAgIHVpbnQ2NF90IG1heFVuaWZv
cm1CdWZmZXJCaW5kaW5nU2l6ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBtYXhTdG9yYWdlQnVmZmVy
QmluZGluZ1NpemUgeyAwIH07CisgICAgdWludDMyX3QgbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFs
aWdubWVudCB7IDAgfTsKKyAgICB1aW50MzJfdCBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25t
ZW50IHsgMCB9OworICAgIHVpbnQzMl90IG1heFZlcnRleEJ1ZmZlcnMgeyAwIH07CisgICAgdWlu
dDMyX3QgbWF4VmVydGV4QXR0cmlidXRlcyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhWZXJ0ZXhC
dWZmZXJBcnJheVN0cmlkZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhJbnRlclN0YWdlU2hhZGVy
Q29tcG9uZW50cyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU3RvcmFn
ZVNpemUgeyAwIH07CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dy
b3VwIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWCB7IDAgfTsK
KyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkgeyAwIH07CisgICAgdWludDMy
X3QgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1
dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uIHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAg
IGVuY29kZXIgPDwgbWF4VGV4dHVyZURpbWVuc2lvbjFEOworICAgICAgICBlbmNvZGVyIDw8IG1h
eFRleHR1cmVEaW1lbnNpb24yRDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhUZXh0dXJlRGltZW5z
aW9uM0Q7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZUFycmF5TGF5ZXJzOworICAgICAg
ICBlbmNvZGVyIDw8IG1heEJpbmRHcm91cHM7CisgICAgICAgIGVuY29kZXIgPDwgbWF4RHluYW1p
Y1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGVuY29kZXIgPDwgbWF4
RHluYW1pY1N0b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGVuY29kZXIg
PDwgbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIgPDwg
bWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9yYWdl
QnVmZmVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0b3JhZ2VUZXh0
dXJlc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFVuaWZvcm1CdWZmZXJz
UGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VW5pZm9ybUJ1ZmZlckJpbmRp
bmdTaXplOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZTsK
KyAgICAgICAgZW5jb2RlciA8PCBtaW5Vbmlmb3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50OworICAg
ICAgICBlbmNvZGVyIDw8IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAgICAg
IGVuY29kZXIgPDwgbWF4VmVydGV4QnVmZmVyczsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhWZXJ0
ZXhBdHRyaWJ1dGVzOworICAgICAgICBlbmNvZGVyIDw8IG1heFZlcnRleEJ1ZmZlckFycmF5U3Ry
aWRlOworICAgICAgICBlbmNvZGVyIDw8IG1heEludGVyU3RhZ2VTaGFkZXJDb21wb25lbnRzOwor
ICAgICAgICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAgICAg
ICAgZW5jb2RlciA8PCBtYXhDb21wdXRlSW52b2NhdGlvbnNQZXJXb3JrZ3JvdXA7CisgICAgICAg
IGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBlbmNvZGVyIDw8
IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhDb21wdXRl
V29ya2dyb3VwU2l6ZVo7CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91cHNQ
ZXJEaW1lbnNpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkTGltaXRzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVEaW1lbnNp
b24xRDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlRGltZW5zaW9uMUQ7CisgICAgICAg
IGlmICghbWF4VGV4dHVyZURpbWVuc2lvbjFEKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0dXJlRGltZW5z
aW9uMkQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZURpbWVuc2lvbjJEOworICAgICAg
ICBpZiAoIW1heFRleHR1cmVEaW1lbnNpb24yRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VGV4dHVyZURpbWVu
c2lvbjNEOworICAgICAgICBkZWNvZGVyID4+IG1heFRleHR1cmVEaW1lbnNpb24zRDsKKyAgICAg
ICAgaWYgKCFtYXhUZXh0dXJlRGltZW5zaW9uM0QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVBcnJh
eUxheWVyczsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlQXJyYXlMYXllcnM7CisgICAg
ICAgIGlmICghbWF4VGV4dHVyZUFycmF5TGF5ZXJzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhCaW5kR3JvdXBz
OworICAgICAgICBkZWNvZGVyID4+IG1heEJpbmRHcm91cHM7CisgICAgICAgIGlmICghbWF4Qmlu
ZEdyb3VwcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDx1aW50MzJfdD4gbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVM
YXlvdXQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlw
ZWxpbmVMYXlvdXQ7CisgICAgICAgIGlmICghbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlw
ZWxpbmVMYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVs
aW5lTGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1Bl
clBpcGVsaW5lTGF5b3V0OworICAgICAgICBpZiAoIW1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1Bl
clBpcGVsaW5lTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJT
dGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFn
ZTsKKyAgICAgICAgaWYgKCFtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50
MzJfdD4gbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhT
YW1wbGVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBpZiAoIW1heFNhbXBsZXJzUGVyU2hhZGVy
U3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8dWludDMyX3Q+IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAg
ICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAg
aWYgKCFtYXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhTdG9y
YWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhTdG9yYWdl
VGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhTdG9yYWdlVGV4dHVyZXNQ
ZXJTaGFkZXJTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJTdGFn
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlOwor
ICAgICAgICBpZiAoIW1heFVuaWZvcm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2UpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IG1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhVbmlm
b3JtQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAgIGlmICghbWF4VW5pZm9ybUJ1ZmZlckJpbmRp
bmdTaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBtYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAg
IGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAgICBpZiAoIW1h
eFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWluVW5pZm9ybUJ1ZmZlck9m
ZnNldEFsaWdubWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBtaW5Vbmlmb3JtQnVmZmVyT2Zmc2V0
QWxpZ25tZW50OworICAgICAgICBpZiAoIW1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAgICAgIGRl
Y29kZXIgPj4gbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgaWYgKCFt
aW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhWZXJ0ZXhCdWZm
ZXJzOworICAgICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlcnM7CisgICAgICAgIGlmICgh
bWF4VmVydGV4QnVmZmVycykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VmVydGV4QXR0cmlidXRlczsKKyAgICAg
ICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhBdHRyaWJ1dGVzOworICAgICAgICBpZiAoIW1heFZlcnRl
eEF0dHJpYnV0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlOworICAg
ICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlOworICAgICAgICBpZiAo
IW1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhJbnRlclN0YWdlU2hh
ZGVyQ29tcG9uZW50czsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhJbnRlclN0YWdlU2hhZGVyQ29t
cG9uZW50czsKKyAgICAgICAgaWYgKCFtYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9uZW50cykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1
aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplOworICAgICAgICBkZWNvZGVy
ID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAgICAgICAgaWYgKCFtYXhDb21w
dXRlV29ya2dyb3VwU3RvcmFnZVNpemUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVJbnZvY2F0aW9u
c1Blcldvcmtncm91cDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlSW52b2NhdGlvbnNQ
ZXJXb3JrZ3JvdXA7CisgICAgICAgIGlmICghbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dy
b3VwKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVg7CisgICAgICAgIGRlY29k
ZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBpZiAoIW1heENvbXB1dGVX
b3JrZ3JvdXBTaXplWCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVZOworICAg
ICAgICBkZWNvZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgaWYgKCFt
YXhDb21wdXRlV29ya2dyb3VwU2l6ZVkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVXb3JrZ3JvdXBT
aXplWjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7CisgICAg
ICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRl
V29ya2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29y
a2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFtYXhDb21wdXRlV29ya2dyb3Vwc1Bl
ckRpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIHsgeworICAgICAgICAgICAgKm1heFRleHR1cmVEaW1lbnNpb24xRCwKKyAgICAgICAg
ICAgICptYXhUZXh0dXJlRGltZW5zaW9uMkQsCisgICAgICAgICAgICAqbWF4VGV4dHVyZURpbWVu
c2lvbjNELAorICAgICAgICAgICAgKm1heFRleHR1cmVBcnJheUxheWVycywKKyAgICAgICAgICAg
ICptYXhCaW5kR3JvdXBzLAorICAgICAgICAgICAgKm1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1Bl
clBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1Bl
clBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRl
clN0YWdlLAorICAgICAgICAgICAgKm1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAg
ICAgICAqbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhT
dG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhVbmlmb3JtQnVm
ZmVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFVuaWZvcm1CdWZmZXJCaW5kaW5n
U2l6ZSwKKyAgICAgICAgICAgICptYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemUsCisgICAgICAg
ICAgICAqbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAgICAgICptaW5T
dG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50LAorICAgICAgICAgICAgKm1heFZlcnRleEJ1ZmZl
cnMsCisgICAgICAgICAgICAqbWF4VmVydGV4QXR0cmlidXRlcywKKyAgICAgICAgICAgICptYXhW
ZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSwKKyAgICAgICAgICAgICptYXhJbnRlclN0YWdlU2hhZGVy
Q29tcG9uZW50cywKKyAgICAgICAgICAgICptYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUs
CisgICAgICAgICAgICAqbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwLAorICAgICAg
ICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWCwKKyAgICAgICAgICAgICptYXhDb21wdXRl
V29ya2dyb3VwU2l6ZVksCisgICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaLAor
ICAgICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uLAorICAgICAgICB9
IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91
dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5
b3V0LmgKaW5kZXggMDY5MjY0NGViMDlhZmU1YmQ4NzI5N2RhOWNmMGZiMWNlODIxZjhmZS4uYTI5
YjljZjJkNzhlOTI1ZDBiYTAzZGM2MjM4YWU3NDlmMzA4MGZmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgK
QEAgLTM0LDYgKzM0LDMzIEBAIHN0cnVjdCBUZXh0dXJlQmluZGluZ0xheW91dCB7CiAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlIHNhbXBsZVR5cGU7CiAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CiAgICAgYm9vbCBtdWx0aXNhbXBs
ZWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVUeXBlOworICAg
ICAgICBlbmNvZGVyIDw8IHZpZXdEaW1lbnNpb247CisgICAgICAgIGVuY29kZXIgPDwgbXVsdGlz
YW1wbGVkOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVU
eXBlPiBzYW1wbGVUeXBlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVR5cGU7CisgICAgICAg
IGlmICghc2FtcGxlVHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHZp
ZXdEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsKKyAgICAgICAg
aWYgKCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG11bHRpc2FtcGxlZDsKKyAgICAgICAgZGVjb2Rl
ciA+PiBtdWx0aXNhbXBsZWQ7CisgICAgICAgIGlmICghbXVsdGlzYW1wbGVkKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnNh
bXBsZVR5cGUpLCBXVEZNb3ZlKCp2aWV3RGltZW5zaW9uKSwgV1RGTW92ZSgqbXVsdGlzYW1wbGVk
KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9y
LmgKaW5kZXggMzFhMDY2ZTY1MDQ1YTVmOTc1ZGIxNGM2ZTdiMTBhNWZmMTdiOTkxYi4uMzMyMjE3
YmE2MTI1MmMxNDgwN2JlNjQ4ODAyOWUzNWQ4ZWM1MjUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKQEAgLTQxLDYg
KzQxLDU3IEBAIHN0cnVjdCBUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlw
dG9yQmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24gZGltZW5zaW9uOwog
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZVVzYWdlRmxhZ3MgdXNhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAg
ICAgICAgZW5jb2RlciA8PCBzaXplOworICAgICAgICBlbmNvZGVyIDw8IG1pcExldmVsQ291bnQ7
CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlQ291bnQ7CisgICAgICAgIGVuY29kZXIgPDwgZGlt
ZW5zaW9uOworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCB1
c2FnZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNj
cmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAg
ICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6ZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Oklu
dGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OworICAgICAgICBkZWNvZGVyID4+IG1pcExl
dmVsQ291bnQ7CisgICAgICAgIGlmICghbWlwTGV2ZWxDb3VudCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6
ZTMyPiBzYW1wbGVDb3VudDsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3VudDsKKyAgICAg
ICAgaWYgKCFzYW1wbGVDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4gZGlt
ZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IGRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFkaW1l
bnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVj
b2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0
dXJlVXNhZ2VGbGFncz4gdXNhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gdXNhZ2U7CisgICAgICAg
IGlmICghdXNhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpzaXpl
KSwgV1RGTW92ZSgqbWlwTGV2ZWxDb3VudCksIFdURk1vdmUoKnNhbXBsZUNvdW50KSwgV1RGTW92
ZSgqZGltZW5zaW9uKSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2UpIH0gfTsKKyAg
ICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5o
CmluZGV4IGZmYTU2ZTUzYmJhMDkyMDlhYmJkNWYxZTQ5YzI2YWRjMjNlNTc0ZWEuLmE4MTc0MzU1
ZTFkNjlmMzM2ODI5ZjY0MjNmMDMxMjJlOTlmZTg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKQEAg
LTQyLDYgKzQyLDYzIEBAIHN0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29v
cmRpbmF0ZSBiYXNlQXJyYXlMYXllcjsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZT4gYXJyYXlMYXllckNvdW50OworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigq
dGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgZm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8IGRp
bWVuc2lvbjsKKyAgICAgICAgZW5jb2RlciA8PCBhc3BlY3Q7CisgICAgICAgIGVuY29kZXIgPDwg
YmFzZU1pcExldmVsOworICAgICAgICBlbmNvZGVyIDw8IG1pcExldmVsQ291bnQ7CisgICAgICAg
IGVuY29kZXIgPDwgYmFzZUFycmF5TGF5ZXI7CisgICAgICAgIGVuY29kZXIgPDwgYXJyYXlMYXll
ckNvdW50OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0Pj4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZv
cm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
VGV4dHVyZVZpZXdEaW1lbnNpb24+PiBkaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gZGlt
ZW5zaW9uOworICAgICAgICBpZiAoIWRpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUFz
cGVjdD4gYXNwZWN0OworICAgICAgICBkZWNvZGVyID4+IGFzcGVjdDsKKyAgICAgICAgaWYgKCFh
c3BlY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBiYXNlTWlwTGV2ZWw7Cisg
ICAgICAgIGRlY29kZXIgPj4gYmFzZU1pcExldmVsOworICAgICAgICBpZiAoIWJhc2VNaXBMZXZl
bCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4+IG1pcExl
dmVsQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gbWlwTGV2ZWxDb3VudDsKKyAgICAgICAgaWYg
KCFtaXBMZXZlbENvdW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYmFzZUFy
cmF5TGF5ZXI7CisgICAgICAgIGRlY29kZXIgPj4gYmFzZUFycmF5TGF5ZXI7CisgICAgICAgIGlm
ICghYmFzZUFycmF5TGF5ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNv
b3JkaW5hdGU+PiBhcnJheUxheWVyQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gYXJyYXlMYXll
ckNvdW50OworICAgICAgICBpZiAoIWFycmF5TGF5ZXJDb3VudCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNj
cmlwdG9yQmFzZSksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKmRpbWVuc2lvbiksIFdURk1v
dmUoKmFzcGVjdCksIFdURk1vdmUoKmJhc2VNaXBMZXZlbCksIFdURk1vdmUoKm1pcExldmVsQ291
bnQpLCBXVEZNb3ZlKCpiYXNlQXJyYXlMYXllciksIFdURk1vdmUoKmFycmF5TGF5ZXJDb3VudCkg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDI0ODEwMmRmNmY0MGZhZGFmOGFhZjA2MTljNTgyMTQ1YTU5NmYxNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9u
RXJyb3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RydWN0IFZhbGlkYXRpb25FcnJvciB7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBtZXNzYWdlOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZhbGlkYXRpb25FcnJv
cj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gbWVzc2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgICAgICBp
ZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqbWVzc2FnZSkgfSB9OworICAgIH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmgKaW5kZXggYTFiNTNjOTdjNzliNTc5M2M5N2U2MWZi
M2FhN2JkNjNiZTM2OWE3My4uZjkzZmJjZDYyYzEyODkwNzNjNGE5NjcxZmIyYjY2MDZkZDBkZDM1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0
dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhB
dHRyaWJ1dGUuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IFZlcnRleEF0dHJpYnV0ZSB7CiAg
ICAgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAKICAgICBQQUw6OldlYkdQVTo6SW5kZXgz
MiBzaGFkZXJMb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZv
cm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29kZXIgPDwgc2hh
ZGVyTG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VmVydGV4QXR0cmlidXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdD4g
Zm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0OworICAgICAgICBkZWNvZGVyID4+IG9mZnNl
dDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkluZGV4MzI+IHNoYWRlckxv
Y2F0aW9uOworICAgICAgICBkZWNvZGVyID4+IHNoYWRlckxvY2F0aW9uOworICAgICAgICBpZiAo
IXNoYWRlckxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKm9mZnNldCksIFdURk1v
dmUoKnNoYWRlckxvY2F0aW9uKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaAppbmRleCAwMzc3NzRiMWI3MTg5ZTM2NWU4MjMwYjNmYjE2
MjgzYzY4MDcxNDZiLi4yMzEwMmRjZGIzNDQyNGI3YTgxYjVkZjIyMmZkY2QwNWQwMjM1OGUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVy
TGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1
ZmZlckxheW91dC5oCkBAIC0zNiw2ICszNiwzMyBAQCBzdHJ1Y3QgVmVydGV4QnVmZmVyTGF5b3V0
IHsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGFycmF5U3RyaWRlOwogICAgIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhTdGVwTW9kZSBzdGVwTW9kZTsKICAgICBWZWN0b3I8VmVydGV4QXR0cmlidXRlPiBh
dHRyaWJ1dGVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgYXJyYXlTdHJp
ZGU7CisgICAgICAgIGVuY29kZXIgPDwgc3RlcE1vZGU7CisgICAgICAgIGVuY29kZXIgPDwgYXR0
cmlidXRlczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBhcnJheVN0
cmlkZTsKKyAgICAgICAgZGVjb2RlciA+PiBhcnJheVN0cmlkZTsKKyAgICAgICAgaWYgKCFhcnJh
eVN0cmlkZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU+IHN0ZXBNb2RlOworICAgICAg
ICBkZWNvZGVyID4+IHN0ZXBNb2RlOworICAgICAgICBpZiAoIXN0ZXBNb2RlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxW
ZXJ0ZXhBdHRyaWJ1dGU+PiBhdHRyaWJ1dGVzOworICAgICAgICBkZWNvZGVyID4+IGF0dHJpYnV0
ZXM7CisgICAgICAgIGlmICghYXR0cmlidXRlcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCphcnJheVN0cmlkZSksIFdURk1v
dmUoKnN0ZXBNb2RlKSwgV1RGTW92ZSgqYXR0cmlidXRlcykgfSB9OworICAgIH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDg0MjQ3MTNkZGNkNDk4ZjZiNjAxYzQwODJj
NzE5N2UxZGJlMmJiNTkuLjQ2ZmY4Yzc1NDNlYzAyYWEyMWQ2ZGVkN2FkOWUxZjE0ODIwMTFlNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5o
CkBAIC0zNCw2ICszNCwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3Qg
VmVydGV4U3RhdGUgOiBwdWJsaWMgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFZlY3RvcjxzdGQ6
Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZlcnM7CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFnZSY+
KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXJzOworICAgIH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlcnRleFN0YXRlPiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJvZ3Jh
bW1hYmxlU3RhZ2U+IHByb2dyYW1tYWJsZVN0YWdlOworICAgICAgICBkZWNvZGVyID4+IHByb2dy
YW1tYWJsZVN0YWdlOworICAgICAgICBpZiAoIXByb2dyYW1tYWJsZVN0YWdlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjxz
dGQ6Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+PiBidWZmZXJzOworICAgICAgICBkZWNv
ZGVyID4+IGJ1ZmZlcnM7CisgICAgICAgIGlmICghYnVmZmVycykKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwcm9ncmFtbWFi
bGVTdGFnZSksIFdURk1vdmUoKmJ1ZmZlcnMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNjc2ZGFkZGFjODgzMTk2YzZhMzQ0
YTlmYjFhNmQ0Y2Q0MWFmOGNiYi4uOTFkMWVhYjg5MDUxODRmOGUwMjEzZDM5YWU4ZGRiNTQyYzNj
OGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMSw2ICszMSwyOSBAQCBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRSZW5kZXJpbmdSZXNv
dXJjZXNSZXF1ZXN0LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRXZWJHTFJlbmRlcmlu
Z1Jlc291cmNlc1JlcXVlc3QuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVB
ZGFwdGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmNw
cAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcAor
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNwcAorR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlRGV2aWNlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0
ZXJuYWxUZXh0dXJlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNw
cAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwCitH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAKK0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVT
YW1wbGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxl
LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAKK0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcAorR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuY3BwCkBAIC03NjAsMyArNzgzLDI2IEBAIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogV2Vi
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorCitSZW1vdGVBZGFw
dGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJlY2VpdmVyLmNw
cAorUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQnVmZmVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tcHV0
ZVBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVz
c2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlRGV2aWNlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlR1BVTWVzc2FnZVJlY2Vp
dmVyLmNwcAorUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVR
dWVyeVNldE1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVF1ZXVlTWVzc2FnZVJlY2VpdmVyLmNw
cAorUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUmVuZGVyUGlwZWxpbmVNZXNzYWdlUmVjZWl2ZXIuY3Bw
CitSZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlU2hhZGVyTW9kdWxlTWVz
c2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90
ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2RhNjU3NGY4ZDY0Mzg0M2Q5MDQyZDMx
NDQ2NTM2OWRjMTg1OGQ3Yi4uNmVmZWNiY2VlNDY1OTJlNzU4ZTBlODhjZjZlOTE4MWNlOTI5OTk4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zODAsNiArMzgwLDkgQEAKIAkJMUMwQTE5NUMxQzkxNkUxQjAwRkUwRUJCIC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHlTY3JpcHRTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMEExOTVCMUM5MTZFMUIwMEZFMEVCQiAvKiBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5U2NyaXB0U291cmNlLmggKi87IH07CiAJCTFDMjA5MzYwMjIz
MThDQjAwMDAyNkEzOSAvKiBOU0F0dHJpYnV0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjA5MzVFMjIzMThDQjAwMDAyNkEzOSAvKiBO
U0F0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMs
ICk7IH07IH07CiAJCTFDMjE4NDAyMjIzMzg3MjgwMEJBQzcwMCAvKiBOU0F0dHJpYnV0ZWRTdHJp
bmdQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzIxODQwMTIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFDNTY1
NTdGMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNTY1NTdDMjc0NUM1QTAwMDYzMDBB
RiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCAqLzsgfTsKKwkJMUM1NjU1ODAyNzQ1QzVBMTAwNjMw
MEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUM1NjU1N0QyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3Vy
Y2UxMDIuY3BwICovOyB9OworCQkxQzU2NTU4MTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNv
dXJjZTEwMy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzU2NTU3RTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgKi87IH07
CiAJCTFDODkxRDY2MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JVSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4OTFENjMxOUIxMjRGRjAw
QkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggKi87IH07CiAJCTFDOEUyODIwMTI3NUQxNTQwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDOEUyODFFMTI3NUQxNTQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3IuaCAq
LzsgfTsKIAkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclVJUHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUyODMy
MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JVSVByb3h5LmggKi87IH07CkBAIC0yODc5
LDYgKzI4ODIsOSBAQAogCQkxQzIwOTM1RTIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVk
U3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TQXR0cmlidXRlZFN0cmluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzIwOTM1RjIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1
dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTlNBdHRyaWJ1dGVkU3RyaW5nLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIxODQwMTIyMzM4NzI4MDBCQUM3MDAg
LyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDNTY1NTdDMjc0NUM1QTAwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDEuY3BwOyBwYXRoID0gIkRlcml2
ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDEuY3BwIjsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUM1NjU1N0QyNzQ1QzVBMTAw
NjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmll
ZFNvdXJjZTEwMi5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNv
dXJjZXMvVW5pZmllZFNvdXJjZTEwMi5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQkxQzU2NTU3RTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTAzLmNwcDsgcGF0aCA9ICJEZXJp
dmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAzLmNwcCI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDNzM5RTg1MjM0N0JDRjYw
MEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb3Jl
VGV4dEhlbHBlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNzM5RTg3MjM0
N0JEMEYwMEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZVRl
eHRIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNzdDMTk1MTI4OEE4
NzIwMDZBNzQyRiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYkluc3BlY3RvclVJUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yODk1LDYgKzI5MDEsODAgQEAKIAkJMUM4RTJBMzExMjc3ODUy
NDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQzhFMkEzMjEy
Nzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3Bl
Y3RvclVJTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
SW5zcGVjdG9yVUlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDFE
Mjc0NDZBMDMwMDJDQ0I3OCAvKiBSZW1vdGVHUFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMUUyNzQ0NkEw
MzAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVT2Jq
ZWN0SGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAxRjI3NDQ2QTAz
MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUXVlcnlT
ZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjAyNzQ0NkEwNDAwMkND
Qjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJC
dW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjEyNzQ0NkEwNDAw
MkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVF1ZXVl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjIyNzQ0NkEwNDAwMkND
Qjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzAyMzI3NDQ2QTA1MDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMDI0Mjc0NDZBMDUwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9iamVjdEhlYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzAyNTI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMDI2Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDI3Mjc0NDZBMDYwMDJDQ0I3OCAvKiBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyODI3NDQ2QTA2
MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVT
YW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjkyNzQ0NkEw
NzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZVJlbmRlclBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJB
Mjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwMkIyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3
OCAvKiBSZW1vdGVTYW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNhbXBsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMkQyNzQ0NkEwNzAwMkNDQjc4IC8qIFJl
bW90ZVBpcGVsaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJFMjc0NDZBMDgwMDJDQ0I3
OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmll
dy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyRjI3NDQ2QTA4MDAyQ0NC
NzggLyogUmVtb3RlRGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZURldmljZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDMwMjc0NDZBMDgwMDJDQ0I3
OCAvKiBSZW1vdGVRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVRdWV1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3Rl
UGlwZWxpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUGlwZWxpbmVMYXlv
dXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMjI3NDQ2QTA4MDAy
Q0NCNzggLyogUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUV4
dGVybmFsVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMzI3
NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzAzNDI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAzNTI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwMzYyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVRleHR1cmVWaWV3LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzcyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZURldmlj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwMzgyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZUdQVS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVHUFUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
MzkyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVSZW5kZXJCdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzAzQTI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlUXVlcnlTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAzQjI3NDQ2QTBBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDNDMjc0NDZBMEEwMDJDQ0I3OCAvKiBSZW1v
dGVDb21wdXRlUGlwZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDREMjc0NDZDQjcwMDJDQ0I3
OCAvKiBSZW1vdGVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDRFMjc0NDZD
QjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwNEYyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQWRhcHRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzA1MDI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEJ1
ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDb21t
YW5kQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTEyNzQ0
NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1MjI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3Rl
QmluZEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZUJpbmRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDUzMjc0
NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQmluZEdyb3VwTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDU0Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3Jv
dXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQmluZEdyb3VwLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU1Mjc0NDZDQjkwMDJDQ0I3OCAv
KiBSZW1vdGVDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVDb21tYW5kRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzA1NjI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZEVuY29kZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NzI3NDQ2Q0I5MDAyQ0NCNzgg
LyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVDb21tYW5kQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDU4Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTkyNzQ0NkNCQTAw
MkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDVBMjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDc5Mjc0NEExQ0MwMDJDQ0I3
OCAvKiBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVTdXBw
b3J0ZWRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3QTI3
NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdQVVN1cHBvcnRlZExpbWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzA3QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1v
cnlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBXZWJH
UFVWYWxpZGF0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmFsaWRhdGlvbkVycm9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDdFMjc0NEI5REIwMDJDQ0I3
OCAvKiBXZWJHUFVFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVFcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4MDI3NDRCRDk3MDAyQ0NCNzggLyogUmVtb3Rl
UXVldWUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUXVldWUubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDgxMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODIyNzQ0
QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMDgzMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NDI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlQmlu
ZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cExheW91dC5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODUyNzQ0QkQ5ODAw
MkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVBp
cGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzA4NjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDg3Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJl
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVRleHR1cmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg4Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0
dXJlVmlldy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODkyNzQ0QkQ5OTAwMkNDQjc4IC8q
IFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEEyNzQ0
QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEIyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4QzI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlU2hh
ZGVyTW9kdWxlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4
IC8qIFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlci5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEUyNzQ0QkQ5QTAwMkND
Qjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDb21w
dXRlUGlwZWxpbmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDhGMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzA5MDI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwOTIyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5NDI3NDRCRDlCMDAyQ0NC
NzggLyogUmVtb3RlR1BVLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUdQVS5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTUyNzQ0QkQ5QjAwMkNDQjc4IC8q
IFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRFbmNv
ZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzlFQkE1QjIw
ODdFNzRFMDAwNTQ0MjkgLyogTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW07IHBh
dGggPSBpb3MvTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUNBOEI5MzUxMjdDNzc0RTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0
b3JVSVByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0E4Qjk0MzEy
N0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5z
cGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CkBAIC03MTg1LDYgKzcyNjUsODEgQEAKIAkJCXBhdGggPSBBdXRvbWF0aW9u
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUM5OEMwMUMyNzQ0NjkyNjAw
MkNDQjc4IC8qIFdlYkdQVSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJMUM5OEMwNTkyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICov
LAorCQkJCTFDOThDMDRGMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLmggKi8sCisJ
CQkJMUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4g
Ki8sCisJCQkJMUM5OEMwNTIyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5jcHAg
Ki8sCisJCQkJMUM5OEMwNTQyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5oICov
LAorCQkJCTFDOThDMDkyMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwNTEyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91
cExheW91dC5jcHAgKi8sCisJCQkJMUM5OEMwNTMyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUJp
bmRHcm91cExheW91dC5oICovLAorCQkJCTFDOThDMDg0Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1v
dGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNEUyNzQ0NkNCNzAw
MkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5jcHAgKi8sCisJCQkJMUM5OEMwNEQyNzQ0NkNCNzAwMkND
Qjc4IC8qIFJlbW90ZUJ1ZmZlci5oICovLAorCQkJCTFDOThDMDkwMjc0NEJEOUEwMDJDQ0I3OCAv
KiBSZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTAyNzQ0NkNCODAwMkND
Qjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIuY3BwICovLAorCQkJCTFDOThDMDU3Mjc0NDZDQjkw
MDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVyLmggKi8sCisJCQkJMUM5OEMwODkyNzQ0QkQ5
OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5
OEMwNTYyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCAqLywKKwkJ
CQkxQzk4QzA1NTI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIuaCAqLywK
KwkJCQkxQzk4QzA5NTI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTgyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlci5jcHAgKi8sCisJCQkJMUM5OEMwNUEyNzQ0NkNCQTAwMkNDQjc4IC8qIFJl
bW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oICovLAorCQkJCTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3
OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMw
M0IyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAgKi8sCisJCQkJ
MUM5OEMwM0MyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5oICovLAor
CQkJCTFDOThDMDhFMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkYyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZURldmlj
ZS5jcHAgKi8sCisJCQkJMUM5OEMwMzcyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5o
ICovLAorCQkJCTFDOThDMDhGMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwMkEyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFs
VGV4dHVyZS5jcHAgKi8sCisJCQkJMUM5OEMwMzIyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZUV4
dGVybmFsVGV4dHVyZS5oICovLAorCQkJCTFDOThDMDgyMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1v
dGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMUQyNzQ0NkEwMzAw
MkNDQjc4IC8qIFJlbW90ZUdQVS5jcHAgKi8sCisJCQkJMUM5OEMwMzgyNzQ0NkEwOTAwMkNDQjc4
IC8qIFJlbW90ZUdQVS5oICovLAorCQkJCTFDOThDMDk0Mjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1v
dGVHUFUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzEyNzQ0NkEwODAwMkNDQjc4IC8qIFJl
bW90ZVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKKwkJCQkxQzk4QzAyRDI3NDQ2QTA3MDAyQ0NCNzgg
LyogUmVtb3RlUGlwZWxpbmVMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA4NTI3NDRCRDk4MDAyQ0NC
NzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwM0Ey
NzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0LmNwcCAqLywKKwkJCQkxQzk4QzAxRjI3
NDQ2QTAzMDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuaCAqLywKKwkJCQkxQzk4QzA4QjI3NDRC
RDk5MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMw
MjEyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmNwcCAqLywKKwkJCQkxQzk4QzAzMDI3
NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUXVldWUuaCAqLywKKwkJCQkxQzk4QzA4MDI3NDRCRDk3
MDAyQ0NCNzggLyogUmVtb3RlUXVldWUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzkyNzQ0
NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5jcHAgKi8sCisJCQkJMUM5OEMwMjAy
NzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5oICovLAorCQkJCTFDOThDMDgz
Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMUM5OEMwMkIyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
Y3BwICovLAorCQkJCTFDOThDMDIyMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5k
bGVFbmNvZGVyLmggKi8sCisJCQkJMUM5OEMwOEEyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjYyNzQ0NkEwNjAw
MkNDQjc4IC8qIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzAyNzI3
NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCAqLywKKwkJCQkxQzk4
QzA4MTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMu
aW4gKi8sCisJCQkJMUM5OEMwMzMyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVs
aW5lLmNwcCAqLywKKwkJCQkxQzk4QzAyOTI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVy
UGlwZWxpbmUuaCAqLywKKwkJCQkxQzk4QzA4NjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUmVu
ZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjgyNzQ0NkEwNjAwMkNDQjc4
IC8qIFJlbW90ZVNhbXBsZXIuY3BwICovLAorCQkJCTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3OCAv
KiBSZW1vdGVTYW1wbGVyLmggKi8sCisJCQkJMUM5OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJl
bW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjMyNzQ0NkEwNTAwMkNDQjc4
IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5jcHAgKi8sCisJCQkJMUM5OEMwMzQyNzQ0NkEwOTAwMkND
Qjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5oICovLAorCQkJCTFDOThDMDhDMjc0NEJEOUEwMDJD
Q0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1bGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzUy
NzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUuY3BwICovLAorCQkJCTFDOThDMDI1Mjc0
NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLmggKi8sCisJCQkJMUM5OEMwODcyNzQ0QkQ5
OTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzYy
NzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNwcCAqLywKKwkJCQkxQzk4QzAy
RTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcuaCAqLywKKwkJCQkxQzk4QzA4
ODI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMUM5OEMwMjQyNzQ0NkEwNTAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdEhlYXAuY3BwICovLAor
CQkJCTFDOThDMDFFMjc0NDZBMDMwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmggKi8sCisJ
CQkpOworCQkJcGF0aCA9IFdlYkdQVTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTFDQjc0NjE5Mjc0MzZERTMwMEYxOTg3NCAvKiBXZWJHUFUgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzI1NSw2ICs3NDEwLDcgQEAKIAkJCQkxQ0I3
NDY3OTI3NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oICovLAogCQkJ
CTFDQjc0NjgzMjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRv
ci5oICovLAogCQkJCTFDQjc0NjkyMjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJHUFVDb21tYW5kRW5j
b2RlckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMUNCNzQ2OTcyNzQzOUNCQTAwRjE5ODc0
IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0Njg5Mjc0MzlD
QjYwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oICovLAogCQkJ
CTFDQjc0Njc2Mjc0MzlDQjEwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yLmggKi8sCkBAIC03MjYyLDYgKzc0MTgsNyBAQAogCQkJCTFDQjc0NjQ3Mjc0MzdBN0YwMEYx
OTg3NCAvKiBXZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oICovLAogCQkJCTFDQjc0Njcx
Mjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oICovLAogCQkJCTFD
Qjc0Njg1Mjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmggKi8sCisJ
CQkJMUM5OEMwN0UyNzQ0QjlEQjAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmggKi8sCiAJCQkJMUNC
NzQ2ODcyNzQzOUNCNjAwRjE5ODc0IC8qIFdlYkdQVUV4dGVudDNELmggKi8sCiAJCQkJMUNCNzQ2
NkYyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aCAqLywKIAkJCQkxQ0I3NDY4NjI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0
dXJlRGVzY3JpcHRvci5oICovLApAQCAtNzI3Niw2ICs3NDMzLDcgQEAKIAkJCQkxQ0I3NDY2QzI3
NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQkx
Q0I3NDY3MDI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luMkQuaCAqLywKIAkJCQkxQ0I3
NDZBMDI3NDM5Q0JEMDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luM0QuaCAqLywKKwkJCQkxQzk4QzA3
QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovLAogCQkJCTFD
Qjc0Njk0Mjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgg
Ki8sCiAJCQkJMUNCNzQ2OTgyNzQzOUNCQjAwRjE5ODc0IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NjZEMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVQ
cmltaXRpdmVTdGF0ZS5oICovLApAQCAtNzI5NSw5ICs3NDUzLDEyIEBACiAJCQkJMUNCNzQ2NkIy
NzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCAqLywKIAkJ
CQkxQ0I3NDY3MzI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oICov
LAogCQkJCTFDQjc0Njk2Mjc0MzlDQkEwMEYxOTg3NCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJp
bmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA3OTI3NDRBMUNDMDAyQ0NCNzggLyogV2ViR1BV
U3VwcG9ydGVkRmVhdHVyZXMuaCAqLywKKwkJCQkxQzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyog
V2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8sCiAJCQkJMUNCNzQ2NzUyNzQzOUNCMTAwRjE5ODc0
IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCiAJCQkJMUNCNzQ2ODEyNzQzOUNC
NDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMUNCNzQ2ODAy
NzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oICovLAorCQkJ
CTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLywK
IAkJCQkxQ0I3NDY3MjI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmgg
Ki8sCiAJCQkJMUNCNzQ2OEYyNzQzOUNCODAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxh
eW91dC5oICovLAogCQkJCTFDQjc0NjlBMjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhT
dGF0ZS5oICovLApAQCAtNzY4Niw2ICs3ODQ3LDkgQEAKIAkJCQkyRDg1MDhDNDIxMkUzM0VDMDAw
RUY0NkMgLyogVW5pZmllZFNvdXJjZTk4LmNwcCAqLywKIAkJCQkyRDg1MDhCMTIxMkUzM0U5MDAw
RUY0NkMgLyogVW5pZmllZFNvdXJjZTk5LmNwcCAqLywKIAkJCQkyRDg1MDhCRTIxMkUzM0VCMDAw
RUY0NkMgLyogVW5pZmllZFNvdXJjZTEwMC5jcHAgKi8sCisJCQkJMUM1NjU1N0MyNzQ1QzVBMDAw
NjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDEuY3BwICovLAorCQkJCTFDNTY1NTdEMjc0NUM1QTEw
MDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCAqLywKKwkJCQkxQzU2NTU3RTI3NDVDNUEx
MDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJ1
bmlmaWVkLXNvdXJjZXMiOwogCQkJcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZp
ZWQtc291cmNlcyI7CkBAIC05MDUxLDYgKzkyMTUsNyBAQAogCQk1NTA2NDBBMTI0MDcxQTI5MDBB
QUUwNDUgLyogZ3JhcGhpY3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTFDOThDMDFDMjc0NDY5MjYwMDJDQ0I3OCAvKiBXZWJHUFUgKi8sCiAJCQkJRjQw
OTRDQkMyNTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcCAqLywK
IAkJCQlGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUu
aCAqLywKIAkJCQk3QjE2MTkxMzI3MTlBRTc2MDBDNDBFQUMgLyogR1BVUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMLmggKi8sCkBAIC0xNDcxMiw2ICsxNDg3Nyw5IEBACiAJCQkJMkQ4NTA4RDgyMTJF
MzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDg1MDhDNTIxMkUzM0VEMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEODUwOEQyMjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlmaWVkU291cmNlMTAwLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTFDNTY1NTdGMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVk
U291cmNlMTAxLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDNTY1NTgwMjc0NUM1QTEwMDYzMDBB
RiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDNTY1NTgxMjc0
NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUzOEExRkMwMjNBNTUxQkYwMEQyMzc0RiAvKiBVc2VySW50ZXJmYWNlSWRpb20ubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMTcx
RTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5
LmNwcAppbmRleCBmNjM0ODQ2Yjk1NTczZDUzNDZkODZiOGRiNmRiOWQzNDQzNWQxMTczLi5kYTRi
ZDExMGJjMzdmYTBhYjIyNTlmNzc4MWYwYWMzOWY3ZmQ0MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUFkYXB0ZXJQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgUmVtb3RlQWRhcHRlclByb3h5
Ojp+UmVtb3RlQWRhcHRlclByb3h5KCkKIHsKIH0KIAotdm9pZCBSZW1vdGVBZGFwdGVyUHJveHk6
OnJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPiYmIGNh
bGxiYWNrKQordm9pZCBSZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVlc3REZXZpY2UoY29uc3QgUEFM
OjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9p
ZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGRlc2NyaXB0b3IpOwogICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVB
ZGFwdGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCmluZGV4IDZlODU0M2IxMDViOWI1NDliZjY4ZjY4OTAx
ODYwZTg3YTliYTFmMTUuLjgzM2JiM2VlMzU5ZDFiYjg4NGJmNzk5ZTk1OWFmZWE1OTQ3Nzg2MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUFkYXB0ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCkBAIC01Niw3ICs1Niw3IEBAIHBy
aXZhdGU6CiAKICAgICBXZWJHUFVJZGVudGlmaWVyIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBt
X2JhY2tpbmc7IH0KIAotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBQQUw6OldlYkdQVTo6
RGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRl
dmljZT4pPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJH
UFU6OkRldmljZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BV
OjpEZXZpY2U+JiYpPiYmKSBmaW5hbDsKIAogICAgIERlcXVlPFdURjo6RnVuY3Rpb248dm9pZChS
ZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPj4gbV9jYWxsYmFja3M7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVUZXh0dXJlUHJveHkuY3BwCmluZGV4IDNmZDg1NzM0NzU0Y2RjMGUxYzFkMWYxNmMwYTdl
YjU2NDYxMGYwMjcuLmEyNzlkNDZjMWQ4NmM4N2I2Y2YxZTE5YjgzMGMyNTg5MGIxYjJlOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVRleHR1cmVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBS
ZW1vdGVUZXh0dXJlUHJveHk6On5SZW1vdGVUZXh0dXJlUHJveHkoKQogewogfQogCi1SZWY8UEFM
OjpXZWJHUFU6OlRleHR1cmVWaWV3PiBSZW1vdGVUZXh0dXJlUHJveHk6OmNyZWF0ZVZpZXcoY29u
c3Qgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVz
Y3JpcHRvcikgY29uc3QKK1JlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+IFJlbW90ZVRleHR1
cmVQcm94eTo6Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yKQogewogICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKICAgICByZXR1cm4gUmVtb3RlVGV4dHVyZVZpZXdQcm94eTo6Y3JlYXRlKG1fY29u
dmVydFRvQmFja2luZ0NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaApp
bmRleCA1ZmFkODFiNmJkOTRkZDk0ZWU4NDRlODA1MjE4NWU3ZmU0OWM4NWUxLi5hMzhjZjM0M2Yz
OWRlMzU4MWU2ZTRhOTE2MjllOGEyY2U4OTRhMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0
dXJlUHJveHkuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViR1BVSWRlbnRp
ZmllciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKLSAgICBSZWY8UEFM
OjpXZWJHUFU6OlRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBmaW5hbDsKIAogICAgIHZvaWQg
ZGVzdHJveSgpIGZpbmFsOwogCg==
</data>
<flag name="commit-queue"
          id="469648"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444590</attachid>
            <date>2021-11-17 15:34:04 -0800</date>
            <delta_ts>2021-11-17 17:04:04 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233247-20211117153403.patch</filename>
            <type>text/plain</type>
            <size>465028</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlOTU1YzRk
MzViZmFiZjA1YzU1NmIxZmM1NGJjZTBjMmY0NmYzOWZlLi4yMjA4ZTBjYmQ1NWE0MWI4MTE1ZmMx
NmE3MTBiMDlkNTUwMzY4NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAor
MjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
dG8gdGhlIGVudW0gY2xhc3Nlcywgc28gdGhleSBjYW4gYmUgc2VyaWFsaXplZC4KKworICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHA6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6QWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2UpOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oOgorICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaDoKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg6CisgICAgICAgICogcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVMb2FkT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU1hcE1vZGUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
U3RhdGlzdGljTmFtZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93
ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNv
ZGVyLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RvcmFnZVRleHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0b3JlT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3Qu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24u
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lv
bi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oOgor
CiAyMDIxLTExLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQXBwbGUgUGF5XSBoYW5kbGUgdW5rbm93biBzZXR1cCBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
ZjkzNmE3MzIxN2Y4NmI1NDU3NTU5Y2VkOTRiN2MzMDc4MTMzNDU2Li41YWNlMjVlOTg5MDA0MmEx
Yzg1NWY5M2M2NWQyYTQzOGU0YzQxMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MCBAQAorMjAy
MS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIGNsYXNzZXMgaW4gR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUgdG8gcmVjZWl2ZSBXZWJHUFUncyBJUEMgbWVzc2FnZXMu
CisgICAgICAgIEVhY2ggb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGFuIGFzc29jaWF0ZWQgbWVz
c2FnZXMuaW4gZmlsZS4gRWFjaCBvZiB0aGVzZSBvYmplY3RzCisgICAgICAgIGhvbGRzIGEgYmFj
a2luZyBQQUw6OldlYkdQVSBvYmplY3Qgd2hpY2ggaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlv
bi4gVGhlIG1ldGhvZHMKKyAgICAgICAgdGhhdCByZWNlaXZlIHRoZSBJUEMgbWVzc2FnZXMgYXJl
IGN1cnJlbnRseSB1bmltcGxlbWVudGVkLCBidXQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoCisgICAg
ICAgIHRoZXknbGwganVzdCBmb3J3YXJkIG9uIHRoZSBjYWxscyB0byB0aGVpciBiYWNraW5nIFBB
TDo6V2ViR1BVIG9iamVjdC4KKworICAgICAgICBUaGlzIGFsc28gYWRkcyBzZXJpYWxpemF0aW9u
IHJvdXRpbmVzIGZvciBhbGwgdGhlIHN0cnVjdHMgaW4gU2hhcmVkL1dlYkdQVS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgKHlldCku
IFdlJ3JlIHZlcnkgY2xvc2UsIHRob3VnaCEhISEKKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5
LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUFkYXB0ZXI6On5SZW1vdGVBZGFwdGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCaW5kR3JvdXA6OlJl
bW90ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6flJlbW90
ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6c2V0TGFiZWwp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QmluZEdyb3VwLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmguCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cExheW91dDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0Ojp+UmVtb3RlQmluZEdyb3Vw
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0OjpzZXRMYWJl
bCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZlcjo6UmVtb3RlQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQnVmZmVyOjptYXBBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUJ1ZmZlcjo6dW5tYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVBy
b3h5LmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVDb21tYW5kQnVmZmVyOjpSZW1vdGVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
Q29tbWFuZEVuY29kZXI6OlJlbW90ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJl
VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmZpbGxC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cHVzaERlYnVn
R3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdH
cm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1
Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRp
bWVzdGFtcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmluaXNo
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OnNldExhYmVsKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21t
YW5kRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjp+UmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmRpc3BhdGNoSW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRl
UGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1
Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjppbnNl
cnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGlu
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNv
bXB1dGVQaXBlbGluZTo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZS5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURldmljZTo6UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNl
Ojp+UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
ZXZpY2U6OmltcG9ydEV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURl
dmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2
aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1
dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRl
UmVuZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3Jl
YXRlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OnB1c2hFcnJvclNj
b3BlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0
dXJlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVFeHRlcm5hbFRleHR1
cmU6OlJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4dGVy
bmFsVGV4dHVyZTo6flJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUV4dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVHUFUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVTo6
UmVtb3RlR1BVKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjp+UmVtb3RlR1BVKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91
dDo6UmVtb3RlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGlu
ZUxheW91dDo6flJlbW90ZVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5
U2V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6UmVt
b3RlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6flJlbW90ZVF1
ZXJ5U2V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVR
dWV1ZTo6UmVtb3RlUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6flJlbW90
ZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OnN1Ym1pdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UXVldWU6OndyaXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpjb3B5
RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpz
ZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVldWUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlOjpSZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6On5SZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpz
ZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6
OnNldEluZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXI6OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6On5SZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxSZWZlcmVuY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5PY2NsdXNp
b25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjplbmRP
Y2NsdXNpb25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjpSZW1vdGVSZW5kZXJQaXBl
bGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0
QmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGlwZWxpbmU6
OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQaXBlbGluZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2Rl
LmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTaGFk
ZXJNb2R1bGU6OlJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNo
YWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2hhZGVyTW9kdWxlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
dXJlOjp+UmVtb3RlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6OmNy
ZWF0ZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVWaWV3LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6UmVtb3RlVGV4dHVyZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6flJlbW90ZVRleHR1cmVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZVZp
ZXc6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpPYmplY3RIZWFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21C
YWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Qmlu
ZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21w
dXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9tQmFja2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5
b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNv
bnZlcnRRdWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmpl
Y3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZy
b21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0
UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVG
cm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVy
dFRleHR1cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaDogQWRkZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkJsZW5kU3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Qmxl
bmRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJp
bmRpbmcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkNvbG9yRGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b2xvckRpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRh
cmdldFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1h
bmRFbmNvZGVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkRlcHRoU3RlbmNpbFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkRlcHRoU3RlbmNpbFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRldmlj
ZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGV2
aWNlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUVy
cm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVudDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0REaWN0OjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNERGljdDo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkZyYWdtZW50U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6RnJhZ21lbnRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXI6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VD
b3B5VGV4dHVyZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weVRleHR1cmVUYWdnZWQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Oklt
YWdlQ29weVRleHR1cmVUYWdnZWQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZURh
dGFMYXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VE
YXRhTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjJERGljdDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9yaWdpbjNERGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpPcmlnaW4zRERpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok91dE9mTWVtb3J5RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T3V0T2ZNZW1vcnlFcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpQaXBlbGluZURlc2NyaXB0b3JCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpRdWVyeVNldERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rl
ckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVu
ZGVyUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0xheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQ
YXNzTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9uczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRv
cjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3Rh
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
RmVhdHVyZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9y
dGVkRmVhdHVyZXM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
TGltaXRzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRl
ZExpbWl0czo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVC
aW5kaW5nTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlw
dG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNj
cmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNj
cmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVW
aWV3RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZh
bGlkYXRpb25FcnJvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlZlcnRleFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZUFkYXB0ZXJQcm94eTo6cmVxdWVzdERldmljZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQ
cm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZVRleHR1cmVQ
cm94eTo6Y3JlYXRlVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlVGV4dHVy
ZVByb3h5OjpjcmVhdGVWaWV3IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5Lmg6CisKIDIwMjEtMTEtMTcg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9tZW50
dW0gYW5pbWF0b3Igc29tZXRpbWVzIHN0YXJ0cyB0aGUgYW5pbWF0aW9uIGF0IGEgdmVyeSBoaWdo
IHZlbG9jaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCmluZGV4IGM0ODA1ZGQ5
ODYxMTk3ZWU5NWU1MzZmM2I1MGY1N2RhNjQ2OWFhMTQuLjIzZjVjOWFjZjA5MWRkODdkMzM1MDkw
MWY0NWVhMDU2ZjJmY2ExYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBA
IC0xNDUsNyArMTQ1LDcgQEAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3RE
ZXZpY2VTdGF0dXMgc3RhdHVzLCBXR1BVRGV2aWNlIGRldmljZSwgY28KICAgICBhZGFwdGVyLT5y
ZXF1ZXN0RGV2aWNlQ2FsbGJhY2soc3RhdHVzLCBkZXZpY2UsIG1lc3NhZ2UpOwogfQogCi12b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+JiYgY2FsbGJhY2spCit2b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwuaAppbmRleCAzNDkyNGFjNjg5Yjc5OWY2OWY0OGYxNmY0ZjAxNWVkOWM1NzAxNDA4Li5lODRl
ZDRhODViNmJjM2U0MjEzZDgzN2Q5MThhN2MxNmRmOTgyYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVB
ZGFwdGVySW1wbC5oCkBAIC01OCw5ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0
RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNj
cmlwdG9yJiwgV1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OmZ1bmN0aW9u
PHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpmdW5jdGlv
bjx2b2lkKFJlZjxEZXZpY2U+KT4+IG1fY2FsbGJhY2tzOworICAgIERlcXVlPFdURjo6ZnVuY3Rp
b248dm9pZChSZWY8RGV2aWNlPiYmKT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV0dQVUFkYXB0ZXIg
bV9iYWNraW5nIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4dD4g
bV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29u
dmVydFRvQmFja2luZ0NvbnRleHQuaAppbmRleCAzMWY0NTRiYmRkNDlhNzliYzM3ZmNiODcxMzk0
NjU5Y2ZlZDBkOTJjLi4zYzliNWM3YjRkNTgzZDJhNjcyOGJiZDcyNzNiNWJiMjYwYzYyZDM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKICNpbmNsdWRl
ICJXZWJHUFVUZXh0dXJlVXNhZ2UuaCIKICNpbmNsdWRlIDxXZWJHUFUvV2ViR1BVLmg+CisjaW5j
bHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oCmluZGV4IDJiMThmOWI2
OGQyM2ZiYmIwZTM4MjkzYTFjOTVlMGNmNTk3YTk2NmQuLjMzODNlYTEzNjk0Y2M5ZjA3OTQ1MzBl
MDhiMGIyYzI0YTU2Y2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVVGV4dHVyZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIFdHUFVUZXh0dXJlIGJhY2tpbmcoKSBjb25zdCB7
IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsK
KyAgICBSZWY8VGV4dHVyZVZpZXc+IGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JikgZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oCmluZGV4IGUyZDljNjFkMGVmY2Y1YTZmYzMzN2JkNmFjZDkxOWNlOTEyYmUw
NzEuLjUwN2M0YWFjNDc2ZDgxYmUzNTI5YTM4Yjg5MTY1NjE1ZTA4NjRkZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVy
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRz
KCkgY29uc3QgeyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8RGV2aWNlPik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmlj
ZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+
JiYpPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBZGFwdGVyKFN0cmluZyYmIG5hbWUsIFN1
cHBvcnRlZEZlYXR1cmVzJiBmZWF0dXJlcywgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMsIGJvb2wg
aXNGYWxsYmFja0FkYXB0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaAppbmRleCA2N2JhZDViOWRmODk1
NGE0MDRmOTcwZGZmOWU1MzBhZWFhNTc3Y2QxLi40Y2FkZmE2NWRkNzAwY2MwYTFhNTlmYzRkMGJj
MjkzMjU3ODI4ZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkZHJlc3NNb2RlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVt
IGNsYXNzIEFkZHJlc3NNb2RlIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGUsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpBZGRy
ZXNzTW9kZTo6UmVwZWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJv
clJlcGVhdAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rv
ci5oCmluZGV4IGZlZDVlODFlNjgzYTg1ODg1ODk5OTc0YjRhNmQ0OGI3NDFhODQ0ZDguLjIwMjJi
ODA3MmJiNzRkNzBiZjQ5Y2ViMWU5YWY2OGE2Njk5ZTEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3Iu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTQ2LDMgKzQ3LDI2IEBAIGVudW0gY2xhc3MgQmxlbmRGYWN0b3IgOiB1aW50OF90IHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3RvciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvLAorICAgICAgICBQ
QUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6Ok9uZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5k
RmFjdG9yOjpTcmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNT
cmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGEsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNTcmNBbHBoYSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3Rvcjo6T25lTWludXNEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6RHN0
QWxwaGEsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNEc3RBbHBo
YSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpTcmNBbHBoYVNhdHVyYXRlZCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpDb25zdGFudCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50CisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kT3BlcmF0aW9uLmgKaW5kZXggMWY2MDBjOGRh
YmNhYTc1NzAzMGQ1NzIxOTM4ZjQwZDY0MTFhZjIyMC4uODZhMGI5ZGQ5YzM2OGEzOTU0YmYyNzRm
MWUxZDE5OTU2MTNlYTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzks
MTggQEAgZW51bSBjbGFzcyBCbGVuZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9u
LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OkFkZCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpTdWJ0cmFjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkJsZW5kT3BlcmF0aW9uOjpSZXZlcnNlU3VidHJhY3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpC
bGVuZE9wZXJhdGlvbjo6TWluLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246
Ok1heAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nVHlwZS5oCmluZGV4IDBhMGFkNjZiMDFkNDM2MGE5NzhhNzBhZTA4NTZjYTk1ZjkxN2Uz
ZDcuLjQ0MWI3MjhkNmE0MjAyOTY5ZTE3MDJhY2QzMjNhZDVkNzU3Zjg0YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyQmluZGluZ1R5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQnVmZmVy
QmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BV
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6
V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlOjpVbmlmb3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6QnVmZmVyQmluZGluZ1R5cGU6OlN0b3JhZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZm
ZXJCaW5kaW5nVHlwZTo6UmVhZE9ubHlTdG9yYWdlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQnVmZmVyVXNhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmgKaW5kZXggNTQwMTFmNDMzNzE1ZTRkYjE5ZTJiMGFh
YjVlMjgxYzg3NzEwYjM1Mi4uZDU1ZWNmYzQ2NWRjNTg4NjMzZDdjMmNlNDQ1NDE3OGU2MzhhNmEz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyVXNhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCiB1c2luZyBCdWZmZXJVc2FnZUZsYWdzID0gdWludDMyX3Q7Ci0KIGNsYXNz
IEJ1ZmZlclVzYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8QnVmZmVyVXNhZ2U+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgTUFQX1JFQUQgICAgICA9IDB4MDAw
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCmluZGV4
IDA5MWNhZGFiNDEyNDk3YzljOGQ0N2YzMDU4YjQ1OGM0NjdhYWNiMDMuLjQ0ODQyZmMzOWY5ZGRm
MzA5ZTgyOWMxMTI5YmY0YTBiMGRkNGViYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3Np
dGluZ0FscGhhTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxw
aGFNb2RlOjpPcGFxdWUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0Fs
cGhhTW9kZTo6UHJlbXVsdGlwbGllZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXBhcmVGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKaW5kZXggNmNiZWEzZDU4NDY5NGIwNDQzZGU3YmQ0
NWI2ODQ1YTcwYjQ5OTM1OC4uYjhlNzQxYjdkYjAzNjU3NjI2YTI5ZDI3N2U5YjA0NWUxNGZiNzY5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGFyZUZ1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5o
PgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC00MSwzICs0MiwyMSBAQCBlbnVtIGNs
YXNzIENvbXBhcmVGdW5jdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246Ok5ldmVyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6Q29tcGFyZUZ1bmN0aW9uOjpMZXNzLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1
bmN0aW9uOjpFcXVhbCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyLAor
ICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlckVxdWFsLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpBbHdheXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgKaW5kZXgg
YTQ2MzUyNDQxZWE3N2RkYTIyZGJjZjJjODIxMWU0YzkwZTkzYTQyOS4uM2EyZjA1MGIyNzQyMmIz
NzI2YzQzZDNkZTkzM2JmNTFkY2Q0ZWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6
OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQ29tcGlsYXRpb25NZXNz
YWdlVHlwZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yLAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkluZm8KKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cExvY2F0aW9uLmgKaW5kZXggZjA4MTllMDE0Y2Q5ZGRhYmFiZjBlM2JmYjZkM2ZkZGE3MDYwOGJi
Yy4uZWM3MTdiN2NiNWM0OTU2ZWQ2ODMzMDBhNDE4ODM5MjdjMWFhNmU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkJlZ2lubmluZywKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkVuZAorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oCmluZGV4IDhlNTI3N2JmZjliZjBl
NTYxMjhkYWNkZGY5NjgxZDY3OWQ3ZTQ5MzIuLjRjODdkMDc3MzkxYWNkNjE1ZDA2MWVmNTkwMWEx
MDVmNzBkODBkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUN1bGxNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAK
IG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3Mg
Q3VsbE1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisK
K25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2Vi
R1BVOjpDdWxsTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpDdWxsTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkN1bGxNb2RlOjpO
b25lLAorICAgICAgICBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkZyb250LAorICAgICAgICBQQUw6
OldlYkdQVTo6Q3VsbE1vZGU6OkJhY2sKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVEZXZpY2VMb3N0UmVhc29uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmgKaW5kZXggYWNkYmZmNmQ4OTQ5YTBlYzI5NmRj
NWVjZjM3NTMyZTJlZmEwM2NmZC4uYjQxZWM0MDQyNTJlNWMyOWZhNzE5N2U5ODlkYzg4MmQzNGM2
YWEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVu
dW0gY2xhc3MgRGV2aWNlTG9zdFJlYXNvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8UEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb24+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbiwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZAorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oCmluZGV4IDgyNmJk
YWI1YmMxZDlmODU1YTlmOTEyZDAyYzllYzQ1NGVhOWRkNDAuLmVlZGQ4NzE0ZDQ4ZDE3M2M5MDU3
NTM5YzI5OGExZmRmMDA2ODA2OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgRXJyb3JGaWx0ZXIgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcj4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkVycm9yRmlsdGVyOjpWYWxpZGF0aW9uCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRmVhdHVyZU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZlYXR1cmVOYW1lLmgKaW5kZXggMGQ1ODcwYmM4MDkxMGJjNTkzYWZhZmRjNDAz
ZDRlOTk4ZWI0OTFkMi4uNmEzMzU4OWQ4OTQ5ZmE4NDc2YzE0ZGI3ZmQzNTg0OWFmZjczZjM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmVhdHVyZU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVGZWF0dXJlTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNDIsMyArNDMsMjIgQEAgZW51bSBjbGFzcyBGZWF0dXJl
TmFtZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6
OkZlYXR1cmVOYW1lPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5h
bWU6OkRlcHRoQ2xpcENvbnRyb2wsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgzMmZsb2F0U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uQmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uRXRjMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVO
YW1lOjpUZXh0dXJlQ29tcHJlc3Npb25Bc3RjLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVy
ZU5hbWU6OlRpbWVzdGFtcFF1ZXJ5LAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6
OkluZGlyZWN0Rmlyc3RJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUZpbHRlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZpbHRlck1vZGUuaAppbmRleCA4YmM4ODEyMjA1Y2U4MmI1Yzg0Y2E3ZTRiNTUxMzJhNmFk
MTY0OGU3Li4xYWZiM2ZhNWU1MTJmZWVlMDA5NmMxZTFhOWNhMjAxY2M5ZGEzY2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJN
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmlsdGVyTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBGaWx0ZXJNb2RlIDogdWlu
dDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RmlsdGVyTW9k
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BV
OjpGaWx0ZXJNb2RlLAorICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVyTW9kZTo6TmVhcmVzdCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkZpbHRlck1vZGU6OkxpbmVhcgorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKaW5kZXggN2MzYTA5NTZiM2Q1NTZlMWMz
YzJlZjZiZDE5ZjEzYTlkOGU1OTBhNy4uZmY2NWIxMDA3ZWQzOTJhNjFjZDViMDM0YzA2MmMyYmU2
MTI1MzdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRnJvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNSwzICszNiwxNSBAQCBlbnVtIGNsYXNzIEZy
b250RmFjZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkZyb250RmFjZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpGcm9udEZhY2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGcm9udEZhY2U6
OkNDVywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZyb250RmFjZTo6Q1cKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
LmgKaW5kZXggNjdhZmU4MTFlYjhkODhiYmMyYThiYjllZTQ1OGNiZDBkMTYwZWZjNC4uOTU1ZjA5
N2RjZjAwZDQwMWQwMDk2MDc4MGZhM2IyNjY4Y2U1ZjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6
dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBz
b3VyY2U7CisgICAgLy8gRklYTUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9u
YWw8T3JpZ2luMkQ+IG9yaWdpbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbmRleEZvcm1hdC5oCmluZGV4IGU2ZDRi
Y2IzMjNjYWI1Yzc1YjczMGIwMjhjMzU4M2M3ZmI2MGViYTYuLmFkOTU2ZTcyZGQ4Nzc3NDIxNWQ1
Yjk4NjU3NGUxNmVlODZhMTAwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgSW5kZXhGb3JtYXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0OjpVaW50MTYsCisgICAgICAgIFBBTDo6V2ViR1BVOjpJ
bmRleEZvcm1hdDo6VWludDMyCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTG9h
ZE9wLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2Fk
T3AuaAppbmRleCBkODFmODlmMDllOWI2NmE3M2IxNjIxMTY5ZjQ2YWEyNDdlZWVlOTRjLi5kYzgy
NjBkNzMzMGQ2OGQ4NDg1ZWE3NjlmMmQwZWMwZWE1OTAxNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMg
KzM1LDE0IEBAIGVudW0gY2xhc3MgTG9hZE9wIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6TG9hZE9wPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkxvYWRPcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkxvYWRPcDo6TG9hZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaAppbmRleCA2Y2QxOWQ1Mzc2ZWY3MWJkMzUxMDU1YjkyMTMzYmQzMWI2YjJlOWE4Li5mMTdm
Yzc3NjM1YmZmZWY3MjA2MTNjZTVjMDNjZGIwMzA1OTE4YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oCkBAIC0z
Miw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiB1c2luZyBNYXBNb2RlRmxh
Z3MgPSB1aW50MzJfdDsKLQogY2xhc3MgTWFwTW9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1hcE1v
ZGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgUkVBRCAg
PSAweDAwMDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCmluZGV4IDJl
OGFlZWE5Mjk3YTczZWEyYThmY2VlNDFhNTc3MDgxOTAwNmQ5OTQuLmJmOTNmNjc5MDA0YWRjNjAz
MDc1OWU1ZWMzOTM3OGFkZDVkOTRjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlz
dGljTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQaXBlbGluZVN0YXRpc3RpY05h
bWUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQ
aXBlbGluZVN0YXRpc3RpY05hbWU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lLAorICAgICAgICBQQUw6
OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9ucywK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6Q2xpcHBlckludm9j
YXRpb25zLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlw
cGVyUHJpbWl0aXZlc091dCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGlj
TmFtZTo6RnJhZ21lbnRTaGFkZXJJbnZvY2F0aW9ucywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lU3RhdGlzdGljTmFtZTo6Q29tcHV0ZVNoYWRlckludm9jYXRpb25zCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93ZXJQcmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAppbmRleCAx
NjUzNWM2MWZiMTRiMmMwMmY2MDMyZGNkOWNjMjgwYzk0YTYxMjQwLi4zMDYwODk3Y2Y5ZWEzMmQ0
NzJkYTg2Mjg2ZWE1Njg5ODI0NzBmZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAg
LTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBv
d2VyUHJlZmVyZW5jZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6TG93
UG93ZXIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3Jt
YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNw
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oCmluZGV4IDk0MzAwODA0MDAyYTZjMDJkMThlZTcxYzVhODMzMWM3
MDBhZGZkNTcuLmZhN2QxZTFlZjViYzM4MmU1M2I3ZjdjZjI1MzZmMzRkZDI5ODUxZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRl
ZmluZWRDb2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0g
Y2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29s
b3JTcGFjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdC
CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVRv
cG9sb2d5LmgKaW5kZXggZTRkMGYyYWUyMmJjNjQ1YzQwMzJhNjk1MWZhNDVkNzUzYTVhZTYwYy4u
YjUwY2Y5MzA0YWIyZTE0MjQwZThhNzQ4ZDRhMDY5NjNkNGQ2ZjZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
cmltaXRpdmVUb3BvbG9neS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQcmltaXRpdmVU
b3BvbG9neSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5LAorICAgICAgICBQQUw6Oldl
YkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlBvaW50TGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lTGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1p
dGl2ZVRvcG9sb2d5OjpMaW5lU3RyaXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVU
b3BvbG9neTo6VHJpYW5nbGVMaXN0LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9w
b2xvZ3k6OlRyaWFuZ2xlU3RyaXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWVyeVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oCmluZGV4IDA1OTFmYjM1NDZhZmU2MzMwOWE3OTY3ZDVmOTA0MDlkODc3MWQ1
NGUuLmNjMzBkNDg4M2ZmMmRlMDZlZDlkOGJjOGM5OTJjNWRiODFjNjNkZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5
VHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBRdWVyeVR5cGUgOiB1aW50OF90IHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlU
eXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlUeXBlOjpPY2NsdXNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU6OlBpcGVsaW5lU3RhdGlzdGljcywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlF1ZXJ5VHlwZTo6VGltZXN0YW1wCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVF1ZXVlLmgKaW5kZXggZTE2ZTkzZGUxNjgyZTRiNTg5ZjIwYTk0ZWVhZDg2MzlmNjFh
ZmRmMC4uNmY4ZjhmODEwYjhkMDFhMTI4YzZiZGVmY2RlMzJjZjVhNDA5MjM4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgogI2luY2x1ZGUgIldlYkdQ
VUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggNWExMGM1ZjIxNjZkMGM1OGI3NDI0
NGZjY2RmODIwNWFjODY1NTZjZC4uMmQ3NWZmY2U4YmI4MTA0NGM5MGZjMDU4MjdlZDA5YzYwYzFi
NWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIldlYkdQVUluZGV4Rm9ybWF0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50
ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIK
KyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmgKaW5kZXggMWU3NmJhNzdiODQwYTEwN2Y2YzExNjEyZTgyNzNiZjMyM2VlNzMyZC4u
NzM1MmVhMWRkOGI5NTNiMjVmNTgyNDY2ZWFhNzc5NmVlNWRmMjJmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29s
b3IuaCIKICNpbmNsdWRlICJXZWJHUFVJbmRleEZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdQVUlu
dGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCBhYjVmYTAxOTg5NmFk
MDQ4ZDc1MjJkMDA5YTM3YjhjMTRkMzNlZWQxLi4yMDM4NzY4ZjQzNTc2YjE3NjE4YjQyMzdiNzJk
OWE5MzcwMjFmMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
TG9jYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUmVuZGVyUGFzc1RpbWVzdGFt
cExvY2F0aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2Nh
dGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6
QmVnaW5uaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0
aW9uOjpFbmQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oCmluZGV4IDE4Y2FkYzBlMDcwNjA3YTQ0MTUyMjIxN2QxMjFmYjVi
NDEwMmZmMDAuLmE0OTJjZTY2ZGY1YTEzNGQwZTA4ZmEzNTQxODQ2ODJjMjczYzNmMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBTYW1wbGVyQmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlLAor
ICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlOjpGaWx0ZXJpbmcsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU6Ok5vbkZpbHRlcmluZywKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbgorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaAppbmRl
eCA5MDY5YmI3ZWYyZDQyZGU2ZDc5YmNiODFkYTNhNzE5NDQzMDJlNDQ5Li5iYTBjNmY1NmJlODk1
ODk0ZWJhOWJlYjI0N2ZlOWU3MzA3OTEzMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsK
IApAQCAtNDEsMyArNDIsMjEgQEAgZW51bSBjbGFzcyBTdGVuY2lsT3BlcmF0aW9uIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbjo6S2VlcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm8s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW52ZXJ0LAorICAgICAgICBQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50Q2xhbXAsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRDbGFtcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb246OkluY3JlbWVudFdyYXAsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRXcmFwCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgKaW5kZXggNzJi
NzY4MTVjZGVjYTA3NGY1Yjg0ZWE4MjUwMDllMmM5ZDc1ZTgxNi4uZTQ3ZTdiOWY0YTkxMDdmNGY4
ZjEyMTYzZjJlNzFhZjk2MjQxNjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBTdG9yYWdlVGV4dHVyZUFjY2VzcyA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzLAorICAgICAgICBQQUw6OldlYkdQ
VTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M6OldyaXRlT25seQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaAppbmRleCA5NzBjYmZiZGQyZWYzNDViODkwOWJmYzVmYzY3
NTYwMzc1ODkzZDIxLi45OTQ0ZDhiYzIwMjkxY2RlODg1ZjI0YWI1YjJkOTgzNWY3ZDc0NGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
dG9yZU9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmVPcC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBTdG9yZU9wIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RvcmVPcD4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9y
ZU9wLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcDo6U3RvcmUsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTdG9yZU9wOjpEaXNjYXJkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oCmluZGV4IDA1YzkyZWUwOGNiYmU3NDhjMGY2MWNlNTU3NTU0NGYzYjk4NDM2
YjcuLmQ1MmVkMTJhODIxMjNkMDE3NDdhNmY1NTc0Nzg4NTcyMDZhYTc1NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBzZXRMYWJlbEludGVybmFsKG1f
bGFiZWwpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUmVmPFRleHR1cmVWaWV3PiBjcmVhdGVWaWV3
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlv
bmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oCmluZGV4IDc5YmVhMGNkOGMxN2U5
YzE4NjA0ZjQxMTVjZWMxZDhjYWQ4YTViYmEuLjU2MThjZmViNzUxODlkZDNiNmNkNmNkMzg0ODkz
YThhZDY1YWNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRy
YWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBl
bnVtIGNsYXNzIFRleHR1cmVBc3BlY3QgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0PiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0OjpBbGwsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlQXNwZWN0OjpTdGVuY2lsT25seSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVB
c3BlY3Q6OkRlcHRoT25seQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVEaW1lbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmVEaW1lbnNpb24uaAppbmRleCA0NzU0MTA3ZWU1YjM4MTljYzljODJmODQ3ZGU2
YmM0Y2RlMGQxOWRmLi41M2EyZTc5ZWNlN2IwNTJlOWE1ZGY0NjIxZDU0MDIzYjI5ZjM0NTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGltZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBUZXh0dXJlRGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZURpbWVuc2lvbjo6XzJkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZURp
bWVuc2lvbjo6XzNkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZv
cm1hdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZUZvcm1hdC5oCmluZGV4IDNjOGFhNmM0ODUzYTg1NDAyODZlMzgwYjE5ZmNmMTYxN2ZhMzJk
NWYuLjYyNTk0NjAwNWYwZTg2M2FmOTAzMjgxNjViMzg4OTEyZGQ3NTAyNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3Jt
YXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRm9ybWF0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCkBAIC0xNTMsMyArMTU0LDEwOCBAQCBlbnVtIGNsYXNzIFRleHR1cmVGb3Jt
YXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Ujhz
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4dWludCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c2ludCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OlIxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2
ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzh1bm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnOHNub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OlJnOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpSMzJ1aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMyc2ludCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpSZzE2c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnMTZmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YmE4dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVub3Jt
U1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm0sCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpSZ2I5ZTV1ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpS
Z2IxMGEydW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzExYjEw
dWZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMnVpbnQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzMyc2ludCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMzJmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OlJnYmExNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSZ2JhMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
UmdiYTE2ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1
aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTMyc2ludCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpEZXB0aDE2dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0OjpEZXB0aDI0cGx1cywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkRlcHRoMjRwbHVzU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpEZXB0aDMyZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpC
YzFSZ2JhVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2Jh
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVu
b3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3JtU1JH
QiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0IsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSVW5vcm0sCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSU25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpCYzVSZ1Vub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6QmM1UmdTbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJj
NmhSZ2JVZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzZoUmdi
RmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm0s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjh1bm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtU1JHQiwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2JhOHVub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYmE4dW5vcm1TUkdCLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RWFjUjExdW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpFYWNSMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkVhY1JnMTF1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkVhY1JnMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFz
dGM0eDRVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM0eDRV
bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5v
cm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5vcm1TUkdC
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtU1JHQiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QXN0Yzh4NVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkFzdGM4eDZVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkFzdGM4eDZVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpB
c3RjOHg4VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg4
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVV
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1T
UkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybSwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg2VW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDhVbm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDEwVW5vcm0sCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4MTBVbm9ybVNSR0IsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTJ4MTBVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEyVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDMyZmxvYXRTdGVuY2lsOAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDM4
ZGQzNGRkOTMyZDI0YWYxZGJlOWM0MmRmMmU5ZDcwYmQ1ZDhiZDcuLjM0YTAxY2FiMjBhNTI1NGUw
MGIzMzgyODhiY2EyNjA5NzQwM2ViZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTM4LDMgKzM5LDE4IEBAIGVudW0gY2xhc3MgVGV4dHVyZVNhbXBsZVR5cGUgOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlU2FtcGxlVHlwZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1w
bGVUeXBlOjpGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpV
bmZpbHRlcmFibGVGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBl
OjpEZXB0aCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OlVpbnQKKyAgICA+OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24u
aAppbmRleCBiMzVjMDQwMjNmMWRjNjhiMWFhZWVkODRlYjRiZTVjNWVmNTUzM2I5Li5kMzZlZTQ1
YzhhODY1MGU0YTZhMTNiZTcyNDllZTMzOGIzZDAzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGltZW5zaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewogCkBAIC0zOSwzICs0MCwxOSBAQCBlbnVtIGNsYXNzIFRleHR1cmVWaWV3
RGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3RGltZW5zaW9uOjpfMmRBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uOjpDdWJlLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdE
aW1lbnNpb246OkN1YmVBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGlt
ZW5zaW9uOjpfM2QKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3Jt
YXQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCmluZGV4IDk0ZWFjNDEzOGExNmU5ZWU2ZGRlMDA4NmExOGM3NjZiY2NjNDk3OWMu
LjJhMDEzNTM0Y2NkMzExYWU4MTcwY2ViMjZiZGNkYTMyMGI1NjU5NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtNjMsMyArNjQsNDMgQEAgZW51bSBjbGFzcyBWZXJ0ZXhGb3JtYXQgOiB1aW50
OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50
OHgyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHg0LAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50OHgyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0OjpTaW50OHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9y
bWF0OjpVbm9ybTh4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm04
eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHgyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTh4NCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdDo6VWludDE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OlVpbnQxNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50
MTZ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDE2eDQsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4MiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm0xNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVy
dGV4Rm9ybWF0OjpTbm9ybTE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNub3JtMTZ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNngy
LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDE2eDQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzIsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZv
cm1hdDo6RmxvYXQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9h
dDMyeDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyeDIsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4
Rm9ybWF0OjpVaW50MzJ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2lu
dDMyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzJ4MiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDMsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQzMng0CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmgKaW5kZXggNjRkMTJjOTgwODdlOGI1NDY4Yzdk
OTkzNDIwNDg3MTQ2MzQ5MzMxOS4uNDFiMzA2OWNmMGJmMzQ5YzY3MWMxMWNkZjhiZDFlYmFmM2Yz
OWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBj
bGFzcyBWZXJ0ZXhTdGVwTW9kZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU6OlZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlZlcnRleFN0ZXBNb2RlOjpJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTFVuaXRUZXN0cy9XR1NMVW5pdFRlc3Rz
Lm1tIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KaW5kZXgg
NzNkN2M3ZGM3OWJlNGZjYzBmZDA3ZTg1ODNhZjcwZDA4YmYwYzgxOC4uZjM3NGJhZDYzMzk0Yzcz
Zjg5OWVhZjVkNmRiZmIwY2E2YjdkZmM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XR1NM
VW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KKysrIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRl
c3RzL1dHU0xVbml0VGVzdHMubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8WENUZXN0
L1hDVGVzdC5oPgogI2ltcG9ydCA8dmVjdG9yPgorI2ltcG9ydCA8d3RmL0RhdGFMb2cuaD4KICNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogQGludGVyZmFjZSBXR1NMVW5pdFRlc3RzIDogWENUZXN0
Q2FzZQpAQCAtMzQsNiArMzUsNyBAQAogQGltcGxlbWVudGF0aW9uIFdHU0xVbml0VGVzdHMKIAog
LSAodm9pZCl0ZXN0RXhhbXBsZSB7CisgICAgZGF0YUxvZygiYXNkZlxuIik7CiAgICAgVmVjdG9y
PGludD4geCB7IDIsIDMsIH07CiAgICAgVmVjdG9yPGludD4geTsKICAgICB5LmFwcGVuZCgyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDdkNjM0NTM0ZWNlZDk5NzBmOWZlYjZhNmJmYjk0ZDAzODQz
YzAzZjQuLjUxYzQwOGU5MzAyNzcyNDFmMzA0ZTAxOGFmYjk4OGI0NjhiMjExNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtMTM2LDYgKzEzNiwyOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTAogICAg
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogCisgICAgR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJpbmRHcm91cExheW91dAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUJ1ZmZlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRC
dWZmZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rl
cgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZQor
ICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZQorICAgIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZQorICAgIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVBpcGVsaW5lTGF5b3V0CisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVlcnlTZXQKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZQor
ICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZQorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIKKyAgICBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2RlcgorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lCisgICAgR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlVmlldworCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcgogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkKICAg
ICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDNkZjk4YTM1MGQ4ZDQ3NGM1
MjdkOWMyNDkxMTFjNGJlNTBlYmFkNDAuLjc5OWFkNzViMmExYWIyMTBkMDgxZDU5ZmQ1YjRiMDJk
OGI2ZGFlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTI0LDYgKzI0LDI4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHQubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlv
dXQubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNv
bXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMu
aW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVy
bmFsVGV4dHVyZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlR1BVLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXVlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBh
c3NFbmNvZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgorJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxl
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCAxZjI2NjY4NDAwYWY5MjEyZDAwYzcxYWVhMGI1ODVhMDcw
MjNjYjlhLi5hNjVmYzM2MTg0Y2ZmOGY3NzUyZDY4NTI3OTg2MTU0YjZhZjgwMWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2
ICsxNTQsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdlcwogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBZGFwdGVy
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQWRhcHRlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlck1lc3NhZ2VzLmgKQEAgLTE4NSw2ICsxODgsMTUgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJN
ZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJh
Y2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCaW5kR3Jv
dXBMYXlvdXRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdl
c1JlcGxpZXMuaApAQCAtMjA2LDkgKzIxOCwzMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNv
bW1hbmRCdWZmZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kQnVmZmVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRFbmNvZGVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ29tbWFuZEVuY29kZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXJN
ZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZURldmljZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzUmVwbGllcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2Vp
dmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdQVU1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNz
YWdlc1JlcGxpZXMuaApAQCAtMjgyLDEyICszMTUsMzMgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VzUmVw
bGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9i
amVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVQaXBlbGluZUxheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVBpcGVsaW5lTGF5
b3V0TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUXVlcnlTZXRNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVRdWVyeVNldE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVF1ZXJ5U2V0TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1ZXVlTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UXVldWVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVRdWV1ZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVF
bmNvZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2Vz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
bmRlclBhc3NFbmNvZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UmVuZGVyUGlwZWxpbmVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQaXBlbGluZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRNZXNzYWdlc1JlcGxpZXMuaApAQCAtMzAwLDE1ICszNTQsMjcgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWcKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1w
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZXJNZXNzYWdlc1JlcGxpZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVNoYWRlck1vZHVsZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVU
ZXh0dXJlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlVGV4dHVyZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVRleHR1cmVWaWV3TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1ZjVmNDczMDk2M2Ri
Njk1NWVlOWI0MDkzMTNkY2IwNDBmM2M5Njg4Li5kZGU1YzYzZmUzZjRiMzE1Mjk3ZGI0YjY4NDg5
YzI5ZGU1YmJhNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDcsNiArMjQ3
LDI4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlciBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kIFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyIFwKKwlHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAgXAorCUdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVD
b21tYW5kQnVmZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5k
RW5jb2RlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxp
bmUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZSBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIFwKKwlHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVBpcGVsaW5lTGF5b3V0IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVRdWVyeVNldCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUgXAor
CUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZSBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgXAorCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lIFwKKwlHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVTaGFkZXJNb2R1bGUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVRleHR1cmUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3
IFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eSBcCiAJR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBcCiAJR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTA0MDlhOWM0NjE0YTU0NjI0YWZkZmFhYTBlMmYxMzk1ZjQ3NjM1OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBZGFwdGVyLmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgiCisjaW5j
bHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1
cmVzLmgiCisjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZW1vdGVBZGFwdGVyOjpSZW1vdGVBZGFwdGVyKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBhZGFw
dGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYWRh
cHRlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVBZGFw
dGVyOjp+UmVtb3RlQWRhcHRlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQWRhcHRlcjo6cmVxdWVz
dERldmljZShjb25zdCBXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkdQ
VTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYgY2Fs
bGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJB
TShpZGVudGlmaWVyKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEhBVkUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUwZjM3ZTdlNDY3MDk4YTE3NmZlNGM0MDc4MzE0OWEwYzFkMzc3ZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQWRhcHRlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK25hbWVzcGFjZSBXZWJHUFUgeworc3RydWN0IERldmljZURlc2NyaXB0b3I7CitjbGFzcyBP
YmplY3RIZWFwOworc3RydWN0IFN1cHBvcnRlZEZlYXR1cmVzOworc3RydWN0IFN1cHBvcnRlZExp
bWl0czsKK30KKworY2xhc3MgUmVtb3RlQWRhcHRlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVh
bU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVBZGFwdGVy
PiBjcmVhdGUoUEFMOjpXZWJHUFU6OkFkYXB0ZXImIGFkYXB0ZXIsIFdlYkdQVTo6T2JqZWN0SGVh
cCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZUFkYXB0ZXIoYWRhcHRlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJl
bW90ZUFkYXB0ZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsK
KworICAgIFJlbW90ZUFkYXB0ZXIoUEFMOjpXZWJHUFU6OkFkYXB0ZXImLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZUFkYXB0ZXIoY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVs
ZXRlOworICAgIFJlbW90ZUFkYXB0ZXIoUmVtb3RlQWRhcHRlciYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVBZGFwdGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZUFkYXB0ZXImIG9wZXJhdG9yPShSZW1vdGVBZGFwdGVyJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHJlcXVlc3REZXZp
Y2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllciwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2Vi
R1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpBZGFw
dGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTEz
M2FhNmUxY2M2YjUzOWEwNDllNzQ1NjU5M2VmMDM4YTgzNGM4YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQWRhcHRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7
CisgICAgdm9pZCBSZXF1ZXN0RGV2aWNlKFdlYktpdDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9y
IGRldmljZURlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAt
PiAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRlZEZlYXR1cmVzLCBX
ZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0cykgU3luY2hyb25v
dXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcxMGE1
NDU5NWU2YjRiNDIwYWIxMDkyODMzZjcxOGM0OTEyMzBiNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmNw
cApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUJpbmRHcm91cC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCaW5k
R3JvdXA6OlJlbW90ZUJpbmRHcm91cChQQUw6OldlYkdQVTo6QmluZEdyb3VwJiBiaW5kR3JvdXAs
IFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhiaW5kR3Jv
dXApCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQmluZEdy
b3VwOjp+UmVtb3RlQmluZEdyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVCaW5kR3JvdXA6OnNl
dExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVCaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQmluZEdyb3VwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNkMTBkZjQxNTI4YWQxMjJhYWEwM2JlNzZh
NzgwM2FiZDhhYjgxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmgKQEAgLTAsMCArMSw3NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEJpbmRHcm91cDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsK
K30KKworY2xhc3MgUmVtb3RlQmluZEdyb3VwIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVz
c2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUJpbmRHcm91cD4g
Y3JlYXRlKFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmIGJpbmRHcm91cCwgV2ViR1BVOjpPYmplY3RI
ZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3RlQmluZEdyb3VwKGJpbmRHcm91cCwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1
YWwgflJlbW90ZUJpbmRHcm91cCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmpl
Y3RIZWFwOworCisgICAgUmVtb3RlQmluZEdyb3VwKFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmLCBX
ZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUJpbmRHcm91cChjb25zdCBSZW1vdGVC
aW5kR3JvdXAmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAoUmVtb3RlQmluZEdyb3Vw
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KGNvbnN0IFJlbW90
ZUJpbmRHcm91cCYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KFJl
bW90ZUJpbmRHcm91cCYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1l
c3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJH
UFU6OkJpbmRHcm91cD4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1f
b2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZDdmOTQxYWQ2MmM5ODUwNzNlYWJmZDMzYzU1Y2MxZGRmYzNlNmE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUJpbmRHcm91cCBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhj
MGYwZTExZTc3NDllOTk5ZjE0MTY3MWIyNWM4MGMzZDU4NjhjYjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cExheW91dC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVtb3RlQmluZEdyb3VwTGF5b3V0OjpSZW1vdGVCaW5kR3JvdXBMYXlvdXQo
UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYgYmluZEdyb3VwTGF5b3V0LCBXZWJHUFU6Ok9i
amVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYmluZEdyb3VwTGF5b3V0KQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUJpbmRHcm91cExh
eW91dDo6flJlbW90ZUJpbmRHcm91cExheW91dCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQmluZEdy
b3VwTGF5b3V0OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
bGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
ZmRhY2FlYTJhNTQzOWQxY2JlNzFjNmE4ZmIzZTE5YzgxODU4NTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cExheW91dC5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CitjbGFzcyBCaW5kR3JvdXBMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUJp
bmRHcm91cExheW91dCBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShQ
QUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0JiBiaW5kR3JvdXBMYXlvdXQsIFdlYkdQVTo6T2Jq
ZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVCaW5kR3JvdXBMYXlvdXQoKTsKKworcHJpdmF0ZToK
KyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUJpbmRHcm91cExheW91
dChQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisK
KyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgUmVtb3RlQmluZEdyb3VwTGF5b3V0Jikg
PSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0KFJlbW90ZUJpbmRHcm91cExheW91
dCYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmIG9wZXJhdG9yPShjb25z
dCBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBM
YXlvdXQmIG9wZXJhdG9yPShSZW1vdGVCaW5kR3JvdXBMYXlvdXQmJikgPSBkZWxldGU7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5n
JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+IG1fYmFja2luZzsK
KyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwTGF5b3V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdl
Y2QyOTQ2NDk0OGI5Yzk4MjU2MWU3M2ZjMjhiZmU1MjYzNzA2NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisg
KiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQgTm90UmVm
Q291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmMyNmU0YjU4ODllMDgzMTNkNmE3
YjkzZjdlZDE2NGRmNTZlYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQnVmZmVy
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RI
ZWFwLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCdWZmZXI6OlJlbW90ZUJ1ZmZl
cihQQUw6OldlYkdQVTo6QnVmZmVyJiBidWZmZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0
SGVhcCkKKyAgICA6IG1fYmFja2luZyhidWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0
SGVhcCkKK3sKK30KKworUmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKCkKK3sKK30KKwordm9p
ZCBSZW1vdGVCdWZmZXI6Om1hcEFzeW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9k
ZUZsYWdzLCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJB
TShtYXBNb2RlRmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9Q
QVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjp1bm1hcChWZWN0b3I8dWlu
dDhfdD4mJiBkYXRhKQoreworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKK30KKwordm9pZCBSZW1v
dGVCdWZmZXI6OmRlc3Ryb3koKQoreworfQorCit2b2lkIFJlbW90ZUJ1ZmZlcjo6c2V0TGFiZWwo
U3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZm
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNGE0NWE3ZGRhZTdkNDMxODY3NTQwZGUwOTI4OTIyMTBkMzQxNTJk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCdWZmZXIuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVU1hcE1vZGUuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xh
c3MgQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7
CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVCdWZmZXIgZmluYWwgOiBwdWJs
aWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVtb3RlQnVmZmVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkJ1ZmZlciYgYnVmZmVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVCdWZmZXIoYnVmZmVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+UmVtb3RlQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVj
dEhlYXA7CisKKyAgICBSZW1vdGVCdWZmZXIoUEFMOjpXZWJHUFU6OkJ1ZmZlciYsIFdlYkdQVTo6
T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlQnVmZmVyKGNvbnN0IFJlbW90ZUJ1ZmZlciYpID0g
ZGVsZXRlOworICAgIFJlbW90ZUJ1ZmZlcihSZW1vdGVCdWZmZXImJikgPSBkZWxldGU7CisgICAg
UmVtb3RlQnVmZmVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQnVmZmVyJikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQnVmZmVyJiBvcGVyYXRvcj0oUmVtb3RlQnVmZmVyJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIG1hcEFzeW5jKFBBTDo6
V2ViR1BVOjpNYXBNb2RlRmxhZ3MsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4g
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemVGb3JNYXAsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOworICAgIHZv
aWQgdW5tYXAoVmVjdG9yPHVpbnQ4X3Q+JiYpOworCisgICAgdm9pZCBkZXN0cm95KCk7CisKKyAg
ICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QnVmZmVy
PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZWYxMDIx
OGUyOTI0MTllNWFiNzNlYTk0YzA3ODk4ODIwZGY4YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDMzIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlQnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2
b2lkIE1hcEFzeW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzLCBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6U2l6ZTY0PiBzaXplKSAtPiAoVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9u
b3VzCisgICAgdm9pZCBVbm1hcChWZWN0b3I8dWludDhfdD4gZGF0YSkKKyAgICB2b2lkIERlc3Ry
b3koKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29t
bWFuZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YTlkNTkxM2ZkM2U4YzFmZWM2
OTYxYTVhY2YyOGEwMmQ4MjBiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlQ29tbWFuZEJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQ29tbWFu
ZEJ1ZmZlcjo6UmVtb3RlQ29tbWFuZEJ1ZmZlcihQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYg
Y29tbWFuZEJ1ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9i
YWNraW5nKGNvbW1hbmRCdWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sK
K30KKworUmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIoKQoreworfQor
Cit2b2lkIFJlbW90ZUNvbW1hbmRCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQorewor
ICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYTU2ZmJhNmE4YzM2M2I2NjIyNTllNmI2YjUwM2RlNWJjYTU2MDA3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21tYW5kQnVmZmVyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbW1hbmRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNz
IFJlbW90ZUNvbW1hbmRCdWZmZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tbWFuZEJ1ZmZlcj4gY3Jl
YXRlKFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyJiBjb21tYW5kQnVmZmVyLCBXZWJHUFU6Ok9i
amVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdGVDb21tYW5kQnVmZmVyKGNvbW1hbmRCdWZmZXIsIG9iamVjdEhlYXApKTsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyKFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1v
dGVDb21tYW5kQnVmZmVyKGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZmZXImKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVDb21tYW5kQnVmZmVyKFJlbW90ZUNvbW1hbmRCdWZmZXImJikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQ29tbWFuZEJ1ZmZlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZm
ZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyJiBvcGVyYXRvcj0oUmVtb3Rl
Q29tbWFuZEJ1ZmZlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1l
c3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJH
UFU6OkNvbW1hbmRCdWZmZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFw
PiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjhjZTFiZTc2OWIwNTZkZTc2MDNkYjAwNjcwNDQyMTg1
NDE3ZGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAg
QEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1v
dGVDb21tYW5kQnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVs
KFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1YjQzNjQ3ZDg2ZDA5N2YxZmE2MDE1NzIxZWM3Y2Q5NjVhNjFlMzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5kRW5jb2Rlci5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVh
cC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbW1hbmRFbmNvZGVyOjpSZW1vdGVD
b21tYW5kRW5jb2RlcihQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXImIGNvbW1hbmRFbmNvZGVy
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoY29tbWFu
ZEVuY29kZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3Rl
Q29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2RlcigpCit7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6OmJlZ2luUmVuZGVyUGFzcyhjb25zdCBXZWJHUFU6OlJlbmRlclBh
c3NEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQVTo6Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYgZGVzY3Jp
cHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShk
ZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcigKKyAgICBXZWJHUFVJZGVudGlm
aWVyIHNvdXJjZSwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IHNvdXJjZU9mZnNldCwKKyAgICBX
ZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVz
dGluYXRpb25PZmZzZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplKQoreworICAgIFVO
VVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VPZmZzZXQpOworICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9u
T2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFu
ZEVuY29kZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXImIHNvdXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRl
c3RpbmF0aW9uLAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAg
IFVOVVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rl
cjo6Y29weVRleHR1cmVUb0J1ZmZlcigKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1
cmUmIHNvdXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRp
b24sCisgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpCit7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVT
RURfUEFSQU0oY29weVNpemUpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5
VGV4dHVyZVRvVGV4dHVyZSgKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIHNv
dXJjZSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAor
ICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAgIFVOVVNFRF9QQVJB
TShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BB
UkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZl
cigKKyAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpT
aXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplKQor
eworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3Rp
bmF0aW9uT2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3Rl
Q29tbWFuZEVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNv
ZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6
aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BB
UkFNKG1hcmtlckxhYmVsKTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6d3JpdGVU
aW1lc3RhbXAoV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldCwgUEFMOjpXZWJHUFU6OlNpemUzMiBx
dWVyeUluZGV4KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeVNldCk7CisgICAgVU5VU0VEX1BB
UkFNKHF1ZXJ5SW5kZXgpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQoCisgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldCwKKyAgICBQQUw6OldlYkdQ
VTo6U2l6ZTMyIGZpcnN0UXVlcnksCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUNvdW50
LAorICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgUEFMOjpXZWJHUFU6OlNp
emU2NCBkZXN0aW5hdGlvbk9mZnNldCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlTZXQpOwor
ICAgIFVOVVNFRF9QQVJBTShmaXJzdFF1ZXJ5KTsKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlDb3Vu
dCk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oZGVz
dGluYXRpb25PZmZzZXQpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpmaW5pc2go
Y29uc3QgV2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVu
Y29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJl
bCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNjBlNGIx
Mzg2YTJlM2UwY2RkNTliNzZiZjJmOGY2NjRlYjM4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVy
LmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbW1hbmRFbmNvZGVyOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitzdHJ1Y3QgQ29tbWFuZEJ1ZmZl
ckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yOworc3RydWN0IEltYWdl
Q29weUJ1ZmZlcjsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworY2xhc3MgT2JqZWN0SGVhcDsK
K3N0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRvcjsKK30KKworY2xhc3MgUmVtb3RlQ29tbWFuZEVu
Y29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tbWFuZEVuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQ
VTo6Q29tbWFuZEVuY29kZXImIGNvbW1hbmRFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9i
amVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVDb21t
YW5kRW5jb2Rlcihjb21tYW5kRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZp
cnR1YWwgflJlbW90ZUNvbW1hbmRFbmNvZGVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21tYW5kRW5jb2RlcihQQUw6OldlYkdQVTo6
Q29tbWFuZEVuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUNvbW1h
bmRFbmNvZGVyKGNvbnN0IFJlbW90ZUNvbW1hbmRFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVt
b3RlQ29tbWFuZEVuY29kZXIoUmVtb3RlQ29tbWFuZEVuY29kZXImJikgPSBkZWxldGU7CisgICAg
UmVtb3RlQ29tbWFuZEVuY29kZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21tYW5kRW5jb2Rl
ciYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyJiBvcGVyYXRvcj0oUmVtb3Rl
Q29tbWFuZEVuY29kZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1N
ZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKworICAgIHZvaWQgYmVnaW5SZW5kZXJQYXNzKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGJlZ2luQ29tcHV0ZVBh
c3MoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcj4mLCBX
ZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY29weUJ1ZmZlclRvQnVmZmVyKAorICAgICAg
ICBXZWJHUFVJZGVudGlmaWVyIHNvdXJjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBz
b3VyY2VPZmZzZXQsCisgICAgICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTaXplNjQpOworCisgICAgdm9pZCBjb3B5QnVmZmVyVG9UZXh0dXJlKAorICAgICAg
ICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgc291cmNlLAorICAgICAgICBjb25zdCBX
ZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBXZWJH
UFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZmZXIo
CisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAorICAgICAg
ICBjb25zdCBXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgICAgIGNv
bnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKTsKKworICAgIHZvaWQgY29weVRleHR1cmVU
b1RleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNl
LAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAor
ICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGZp
bGxCdWZmZXIoCisgICAgICAgIFdlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplNjQpOworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExh
YmVsKTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFy
a2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgd3JpdGVUaW1lc3RhbXAoV2Vi
R1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsKKworICAgIHZv
aWQgcmVzb2x2ZVF1ZXJ5U2V0KAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0UXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXpl
MzIgcXVlcnlDb3VudCwKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBkZXN0aW5hdGlvbk9mZnNldCk7CisKKyAgICB2b2lk
IGZpbmlzaChjb25zdCBXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRl
bnRpZmllcik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6
OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmpl
Y3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRF
bmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMGJmMzMxMTQ4ZDJlOTUzMWM1OTdjYjlj
ZGRkNjE3M2I3ZDI5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsNDMgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdl
cyAtPiBSZW1vdGVDb21tYW5kRW5jb2RlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9p
ZCBCZWdpblJlbmRlclBhc3MoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
QmVnaW5Db21wdXRlUGFzcyhzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFz
c0Rlc2NyaXB0b3I+IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQorICAgIHZvaWQgQ29weUJ1ZmZlclRvQnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBzb3VyY2UsIFBBTDo6V2ViR1BVOjpTaXplNjQgc291cmNlT2Zmc2V0LCBXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgZGVzdGluYXRpb24sIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25P
ZmZzZXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKKyAgICB2b2lkIENvcHlCdWZmZXJUb1Rl
eHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciBzb3VyY2UsIFdlYktpdDo6V2Vi
R1BVOjpJbWFnZUNvcHlUZXh0dXJlIGRlc3RpbmF0aW9uLCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50
M0QgY29weVNpemUpCisgICAgdm9pZCBDb3B5VGV4dHVyZVRvQnVmZmVyKFdlYktpdDo6V2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZl
ciBkZXN0aW5hdGlvbiwgV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZv
aWQgQ29weVRleHR1cmVUb1RleHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUg
c291cmNlLCBXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgV2Vi
S2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZvaWQgRmlsbEJ1ZmZlcihXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVz
dGluYXRpb25PZmZzZXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSkKKyAgICB2b2lkIFB1c2hE
ZWJ1Z0dyb3VwKFN0cmluZyBncm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisg
ICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBX
cml0ZVRpbWVzdGFtcChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpX
ZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgUmVzb2x2ZVF1ZXJ5U2V0KFdlYktp
dDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
UXVlcnksIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlDb3VudCwgV2ViS2l0OjpXZWJHUFVJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0
KQorICAgIHZvaWQgRmluaXNoKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRv
ciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2
b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5j
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1MGE5ZjZkZjAwZjQ1YzFjMjE1
OWZjNjFiMzdjN2JlMjFlZjkwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcApAQCAt
MCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciYgY29tcHV0ZVBhc3NFbmNvZGVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoY29tcHV0ZVBhc3NFbmNv
ZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlcjo6flJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlcigpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyIGNv
bXB1dGVQaXBlbGluZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29tcHV0ZVBpcGVsaW5lKTsKK30K
Kwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmRpc3BhdGNoKFBBTDo6V2ViR1BVOjpT
aXplMzIgeCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB5LCBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHopCit7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAg
IFVOVVNFRF9QQVJBTSh5KTsKKyAgICBVTlVTRURfUEFSQU0oeik7Cit9CisKK3ZvaWQgUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNwYXRjaEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5k
aXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RP
ZmZzZXQpOworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGlu
ZVN0YXRpc3RpY3NRdWVyeShXZWJHUFVJZGVudGlmaWVyIHF1ZXJ5U2V0LCBQQUw6OldlYkdQVTo6
U2l6ZTMyIHF1ZXJ5SW5kZXgpCit7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBV
TlVTRURfUEFSQU0ocXVlcnlJbmRleCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyOjplbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXI6OnNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViR1BV
SWRlbnRpZmllciBiaW5kR3JvdXAsCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJH
UFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIG9mZnNldHMpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0o
b2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwdXNoRGVidWdH
cm91cChTdHJpbmcmJiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVs
KTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQor
eworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIo
U3RyaW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsK
K30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxh
YmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdhZmJkOGU5YzU0ZWY2MjQ3MWZkMDg0ZDMx
MjZmODFmMTI4ZWM1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmgKQEAgLTAsMCArMSw5
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdy
YWxUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIENvbXB1dGVQYXNzRW5j
b2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xh
c3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpDb21w
dXRlUGFzc0VuY29kZXImIGNvbXB1dGVQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBv
YmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyKGNvbXB1dGVQYXNzRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0K
KworICAgIHZpcnR1YWwgflJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlcigpOworCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAm
KTsKKworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcihjb25zdCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5j
b2RlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYpID0gZGVsZXRl
OworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZUNvbXB1dGVQ
YXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3Nh
Z2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCisgICAgdm9pZCBzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
c3BhdGNoKFBBTDo6V2ViR1BVOjpTaXplMzIgeCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPiB5LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+KTsKKyAgICB2b2lk
IGRpc3BhdGNoSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAgICB2b2lkIGJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVy
eUluZGV4KTsKKyAgICB2b2lkIGVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CisKKyAgICB2
b2lkIGVuZFBhc3MoKTsKKworICAgIHZvaWQgc2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRl
eDMyLCBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6
OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYpOworCisgICAgdm9pZCBwdXNoRGVidWdH
cm91cChTdHJpbmcmJiBncm91cExhYmVsKTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAg
ICB2b2lkIGluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZv
aWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFz
c0VuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIu
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZiZDJiNTcyY2JhNTQxMWEyM2MyOWM5N2QwN2NjNmMw
YzBlYzJmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsNDAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisg
KiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAt
PiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZv
aWQgU2V0UGlwZWxpbmUoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBEaXNwYXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB6KQor
ICAgIHZvaWQgRGlzcGF0Y2hJbmRpcmVjdChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJl
Y3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBC
ZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXgpCisgICAgdm9pZCBFbmRQaXBl
bGluZVN0YXRpc3RpY3NRdWVyeSgpCisgICAgdm9pZCBFbmRQYXNzKCkKKyAgICB2b2lkIFNldEJp
bmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJE
eW5hbWljT2Zmc2V0Pj4gZHluYW1pY09mZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChT
dHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5z
ZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZvaWQgU2V0TGFiZWwoU3Ry
aW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YjlkOTA5NDgxOTJjNGJmMDAzNDFjZjhiZTY4ZjQ2ZmRlNGNmZGFjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmUu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbXB1dGVQaXBlbGluZTo6UmVtb3Rl
Q29tcHV0ZVBpcGVsaW5lKFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUmIGNvbXB1dGVQaXBl
bGluZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGNv
bXB1dGVQaXBlbGluZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitS
ZW1vdGVDb21wdXRlUGlwZWxpbmU6On5SZW1vdGVDb21wdXRlUGlwZWxpbmUoKQoreworfQorCit2
b2lkIFJlbW90ZUNvbXB1dGVQaXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGlu
ZGV4LCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
cHV0ZVBpcGVsaW5lOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFS
QU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmViMzQwNDNkNzQ4ZmJmN2VmNmJlYTJiMzJkNTA5ZTZmMGNmMmIwMjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CitjbGFzcyBDb21wdXRlUGlwZWxpbmU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90
ZUNvbXB1dGVQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVDb21wdXRlUGlwZWxpbmU+IGNyZWF0
ZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lJiBjb21wdXRlUGlwZWxpbmUsIFdlYkdQVTo6
T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW90ZUNvbXB1dGVQaXBlbGluZShjb21wdXRlUGlwZWxpbmUsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21wdXRlUGlwZWxpbmUoKTsKKworcHJpdmF0
ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUNvbXB1dGVQaXBl
bGluZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7
CisKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
JikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lKFJlbW90ZUNvbXB1dGVQaXBl
bGluZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxpbmUmIG9wZXJhdG9yPShj
b25zdCBSZW1vdGVDb21wdXRlUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRl
UGlwZWxpbmUmIG9wZXJhdG9yPShSZW1vdGVDb21wdXRlUGlwZWxpbmUmJikgPSBkZWxldGU7CisK
KyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVj
dGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgZ2V0QmluZEdyb3Vw
TGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc2V0
TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+
IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDQ1OWFhNTkyMzQyOTM4MWQzNzYwZjUyZmI2ZTNjNDg3YmJhYzZlMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisg
KiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVDb21wdXRlUGlw
ZWxpbmUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgR2V0QmluZEdyb3VwTGF5b3V0
KHVpbnQzMl90IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzhkMGUxZGNjZmU3ZWQ3NzcyNzY0MTU1NjQ1YjEyMDk1ZmU2ZTgwZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlRGV2aWNlLmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVEZXZpY2UuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlRGV2aWNlOjpSZW1vdGVEZXZpY2UoUEFMOjpXZWJHUFU6OkRldmljZSYgZGV2aWNl
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoZGV2aWNl
KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZURldmljZTo6
flJlbW90ZURldmljZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpkZXN0cm95KCkKK3sK
K30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUJ1ZmZlcihjb25zdCBXZWJHUFU6OkJ1ZmZl
ckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlVGV4dHVyZShjb25zdCBXZWJHUFU6
OlRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIoY29uc3Qg
V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjppbXBvcnRFeHRlcm5h
bFRleHR1cmUoY29uc3QgV2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1v
dGVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXZWJHUFU6OkJpbmRHcm91cExh
eW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50
aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29u
c3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7Cisg
ICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwKGNvbnN0IFdlYkdQVTo6QmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
RGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
VU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJH
UFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5V
U0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0o
ZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJl
bW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7
CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNy
ZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKKyAgICBVTlVTRURfUEFS
QU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlQ29tbWFuZEVuY29k
ZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4m
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBXZWJHUFU6
OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVO
VVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVF1
ZXJ5U2V0KGNvbnN0IFdlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3Ip
OworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6
OnB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciBlcnJvckZpbHRlcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZXJyb3JGaWx0ZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6
cG9wRXJyb3JTY29wZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJHUFU6OkVycm9yPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJh
Y2spOworfQorCit2b2lkIFJlbW90ZURldmljZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7
CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZWEyMGE3M2JiYmU1ZDA3NjM4MWY4NzFkZjI2MmYyZDE4NDVjODNhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2Uu
aApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSAiV2ViR1BVRXJyb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oPgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2Ns
YXNzIERldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUg
eworc3RydWN0IEJpbmRHcm91cERlc2NyaXB0b3I7CitzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvcjsKK3N0cnVjdCBCdWZmZXJEZXNjcmlwdG9yOworc3RydWN0IENvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvcjsKK3N0cnVjdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IEV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3I7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBRdWVyeVNldERlc2NyaXB0b3I7CitzdHJ1Y3Qg
UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yOworc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yOworc3RydWN0IFNoYWRlck1vZHVsZURl
c2NyaXB0b3I7CitzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJlbW90ZURl
dmljZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZW1vdGVEZXZpY2U+IGNyZWF0ZShQQUw6OldlYkdQVTo6RGV2aWNl
JiBkZXZpY2UsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZURldmljZShkZXZpY2UsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB+UmVtb3RlRGV2aWNlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVEZXZpY2UoUEFMOjpXZWJHUFU6OkRldmljZSYs
IFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlRGV2aWNlKGNvbnN0IFJlbW90ZURl
dmljZSYpID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZShSZW1vdGVEZXZpY2UmJikgPSBkZWxl
dGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlRGV2aWNlJikgPSBk
ZWxldGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0oUmVtb3RlRGV2aWNlJiYpID0gZGVs
ZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZl
ckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGRlc3Ry
b3koKTsKKworICAgIHZvaWQgY3JlYXRlQnVmZmVyKGNvbnN0IFdlYkdQVTo6QnVmZmVyRGVzY3Jp
cHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlVGV4dHVyZShjb25zdCBX
ZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBj
cmVhdGVTYW1wbGVyKGNvbnN0IFdlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3ImLCBXZWJHUFVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGltcG9ydEV4dGVybmFsVGV4dHVyZShjb25zdCBXZWJHUFU6OkV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQg
Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IFdlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlUGlwZWxpbmVMYXlvdXQo
Y29uc3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGNyZWF0ZUJpbmRHcm91cChjb25zdCBXZWJHUFU6OkJpbmRHcm91cERlc2Ny
aXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY3JlYXRlU2hhZGVyTW9kdWxl
KGNvbnN0IFdlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIp
OworICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlUmVu
ZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJH
UFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0
IFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZVJlbmRlclBp
cGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJH
UFVJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisKKyAgICB2
b2lkIGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVh
dGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgY3JlYXRlUXVlcnlTZXQo
Y29uc3QgV2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgcHVzaEVycm9yU2NvcGUoUEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyKTsKKyAgICB2
b2lkIHBvcEVycm9yU2NvcGUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8V2ViR1BVOjpFcnJvcj4mJik+JiYpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7
CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJH
UFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDA3ZWNmMjcyOWVkNTM4NzEyZWY3ODEyNDYxNDBiNTU1
YWVjYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0OCBAQAorLyog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZURldmlj
ZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBEZXN0cm95KCkKKyAgICB2b2lkIENy
ZWF0ZUJ1ZmZlcihXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBX
ZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVRleHR1
cmUoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlU2FtcGxlcihXZWJL
aXQ6OldlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBJbXBvcnRFeHRlcm5hbFRleHR1cmUoV2Vi
S2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVCaW5kR3JvdXBM
YXlvdXQoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3IgZGVzY3JpcHRv
ciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVQ
aXBlbGluZUxheW91dChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
Q3JlYXRlQmluZEdyb3VwKFdlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3Jl
YXRlU2hhZGVyTW9kdWxlKFdlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIHZvaWQgQ3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICB2b2lkIENyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKFdlYktpdDo6V2ViR1BV
OjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlUmVu
ZGVyUGlwZWxpbmVBc3luYyhXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBT
eW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlQ29tbWFuZEVuY29kZXIoc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OldlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVJlbmRlckJ1
bmRsZUVuY29kZXIoV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZv
aWQgQ3JlYXRlUXVlcnlTZXQoV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvciBkZXNj
cmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFB1
c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciBlcnJvckZpbHRlcikKKyAgICB2
b2lkIFBvcEVycm9yU2NvcGUoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYkdQVTo6RXJy
b3I+IGVycm9yKSBTeW5jaHJvbm91cworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OGJjNGQ5N2I1ZjBiODdmZTkxNmJkNzA1M2NkNDNkODQ1N2E2OTdjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRl
cm5hbFRleHR1cmUuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1JlbW90ZUV4dGVybmFsVGV4dHVyZTo6UmVtb3RlRXh0ZXJuYWxUZXh0
dXJlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmIGV4dGVybmFsVGV4dHVyZSwgV2ViR1BV
OjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGV4dGVybmFsVGV4dHVy
ZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVFeHRlcm5h
bFRleHR1cmU6On5SZW1vdGVFeHRlcm5hbFRleHR1cmUoKQoreworfQorCit2b2lkIFJlbW90ZUV4
dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BB
UkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZmNkZTNkNzhkZDIzZDVkZDgwM2VlNTNjYjY5NDRjOGY4YTg1YzNkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRl
cm5hbFRleHR1cmUuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpX
ZWJHUFUgeworY2xhc3MgRXh0ZXJuYWxUZXh0dXJlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1v
dGVFeHRlcm5hbFRleHR1cmUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlRXh0ZXJuYWxUZXh0dXJlPiBjcmVh
dGUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYgZXh0ZXJuYWxUZXh0dXJlLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVFeHRlcm5hbFRleHR1cmUoZXh0ZXJuYWxUZXh0dXJlLCBvYmplY3RIZWFwKSk7
CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlRXh0ZXJuYWxUZXh0dXJlKCk7CisKK3ByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVFeHRlcm5hbFRl
eHR1cmUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYsIFdlYkdQVTo6T2JqZWN0SGVhcCYp
OworCisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKGNvbnN0IFJlbW90ZUV4dGVybmFsVGV4dHVy
ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZShSZW1vdGVFeHRlcm5hbFRl
eHR1cmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJikgPSBkZWxldGU7CisgICAgUmVtb3RlRXh0ZXJu
YWxUZXh0dXJlJiBvcGVyYXRvcj0oUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0
cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlPiBtX2JhY2tp
bmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4
dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkZWQyNzhmZjI5MjRjMjQzMDRiMGUyM2EyZjAzYWQ5ZWI4ODA0OTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVy
bmFsVGV4dHVyZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIE5v
dFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ0MGY1MDViY2I0MDYzNTYzNGM5NjVm
ZGZhYmZhYzFiMDcyNDg5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUdQVS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitSZW1vdGVHUFU6OlJlbW90ZUdQVShQQUw6OldlYkdQVTo6R1BVJiBncHUsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhncHUpCisgICAgLCBt
X29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlR1BVOjp+UmVtb3RlR1BVKCkK
K3sKK30KKwordm9pZCBSZW1vdGVHUFU6OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFdlYkdQVTo6UmVx
dWVzdEFkYXB0ZXJPcHRpb25zJiBvcHRpb25zLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nJiYsIFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRM
aW1pdHMmJik+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOworICAg
IFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ5MmQyOWMy
NTZkYjY5MjY4ZWI4Y2ZjZWNiMTk2NjY1MmJhMzZmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgKQEAgLTAsMCAr
MSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgiCisj
aW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJH
UFUgeworY2xhc3MgR1BVOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdl
YkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFJlcXVlc3RBZGFwdGVyT3B0aW9uczsK
K30KKworY2xhc3MgUmVtb3RlR1BVIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJl
Y2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUdQVT4gY3JlYXRlKFBBTDo6
V2ViR1BVOjpHUFUmIGdwdSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlR1BVKGdwdSwgb2JqZWN0SGVhcCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUdQVSgpOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlR1BVKFBBTDo6V2ViR1BVOjpHUFUm
LCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUdQVShjb25zdCBSZW1vdGVHUFUm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVHUFUoUmVtb3RlR1BVJiYpID0gZGVsZXRlOworICAgIFJl
bW90ZUdQVSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUdQVSYpID0gZGVsZXRlOworICAgIFJlbW90
ZUdQVSYgb3BlcmF0b3I9KFJlbW90ZUdQVSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFU6
OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcmJiwgV2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYmLCBXZWJHUFU6OlN1cHBvcnRlZExpbWl0
cyYmKT4mJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkdQVT4gbV9iYWNraW5nOworICAgIFJl
ZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjU4ZTdmNWM3Y2U0MTY3Y2NkMzRkNTkxZDViMmYxMmVl
NjE3YTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUdQVSBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBSZXF1ZXN0QWRhcHRlcihXZWJLaXQ6OldlYkdQ
VTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zIG9wdGlvbnMpIC0+IChTdHJpbmcgbmFtZSwgV2ViS2l0
OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRlZEZlYXR1cmVzLCBXZWJLaXQ6Oldl
YkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0cykgU3luY2hyb25vdXMKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMGZh
ZGZlNjZjNDg1MDc1ZTkxNmQ1ODYyODYwNWNmZDU0NDNjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbW90ZVBpcGVsaW5lTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlUGlwZWxpbmVMYXlvdXQ6OlJlbW90ZVBpcGVsaW5lTGF5b3V0KFBBTDo6V2Vi
R1BVOjpQaXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQsIFdlYkdQVTo6T2JqZWN0SGVhcCYg
b2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhwaXBlbGluZUxheW91dCkKKyAgICAsIG1fb2Jq
ZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVQaXBlbGluZUxheW91dDo6flJlbW90
ZVBpcGVsaW5lTGF5b3V0KCkKK3sKK30KKwordm9pZCBSZW1vdGVQaXBlbGluZUxheW91dDo6c2V0
TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVBpcGVsaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNlOWRhNTBlOTA0NDJkMTIz
MjQyNTg2OGY5NDkyZGMwNWJlZmYyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuaApAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJX
ZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUGlwZWxp
bmVMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsK
K2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVBpcGVsaW5lTGF5b3V0IGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlBpcGVsaW5l
TGF5b3V0JiBwaXBlbGluZUxheW91dCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUGlwZWxpbmVMYXlvdXQo
cGlwZWxpbmVMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1v
dGVQaXBlbGluZUxheW91dCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RI
ZWFwOworCisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQoUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5
b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dChj
b25zdCBSZW1vdGVQaXBlbGluZUxheW91dCYpID0gZGVsZXRlOworICAgIFJlbW90ZVBpcGVsaW5l
TGF5b3V0KFJlbW90ZVBpcGVsaW5lTGF5b3V0JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVBpcGVs
aW5lTGF5b3V0JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUGlwZWxpbmVMYXlvdXQmKSA9IGRlbGV0
ZTsKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dCYgb3BlcmF0b3I9KFJlbW90ZVBpcGVsaW5lTGF5
b3V0JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6
OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UGlwZWxp
bmVMYXlvdXQ+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0ODM0ZjhlMWZiOWQxNTcyMzMyY2UyZTYyYmFiNmEzODE4MmZjMWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8q
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVQaXBl
bGluZUxheW91dCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJp
bmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MGMzYjk3OGU5MjliMzVjOWI5MDViOTJiOTQ1NGIzN2UwMmIzZTk0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNl
dC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZW1vdGVRdWVyeVNldC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUXVlcnlTZXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVF1
ZXJ5U2V0OjpSZW1vdGVRdWVyeVNldChQQUw6OldlYkdQVTo6UXVlcnlTZXQmIHF1ZXJ5U2V0LCBX
ZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocXVlcnlTZXQp
CisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUXVlcnlTZXQ6
On5SZW1vdGVRdWVyeVNldCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3ko
KQoreworfQorCit2b2lkIFJlbW90ZVF1ZXJ5U2V0OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkK
K3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNjUwMmViODE3NTRiNTdjYmFhMDc5NDI5YzI4ZTRkZTQ1ZTc2OTA4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVR
dWVyeVNldC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CitjbGFzcyBRdWVyeVNldDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFj
ZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUXVlcnlTZXQg
ZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8UmVtb3RlUXVlcnlTZXQ+IGNyZWF0ZShQQUw6OldlYkdQVTo6UXVlcnlTZXQm
IHF1ZXJ5U2V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVRdWVyeVNldChxdWVyeVNldCwgb2JqZWN0SGVh
cCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVF1ZXJ5U2V0KCk7CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVRdWVyeVNldChQQUw6
OldlYkdQVTo6UXVlcnlTZXQmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVF1
ZXJ5U2V0KGNvbnN0IFJlbW90ZVF1ZXJ5U2V0JikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVlcnlT
ZXQoUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVlcnlTZXQmIG9wZXJh
dG9yPShjb25zdCBSZW1vdGVRdWVyeVNldCYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXJ5U2V0
JiBvcGVyYXRvcj0oUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRM
YWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiBtX2JhY2tp
bmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXJ5U2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2E4MjYwMzQwZWFi
ZTlmMjAzNjI2ODAxM2EwMjA2OWUwZmI0N2UwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
bWVzc2FnZXMgLT4gUmVtb3RlUXVlcnlTZXQgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZv
aWQgRGVzdHJveSgpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVF1ZXVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTExNjUxODM1NTEzZTA5Y2E2NzY4NjQ0Yjc4
MDZjODg2M2UxNDRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVRdWV1ZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1JlbW90ZVF1ZXVlOjpSZW1vdGVRdWV1ZShQQUw6OldlYkdQVTo6UXVldWUm
IHF1ZXVlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmco
cXVldWUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUXVl
dWU6On5SZW1vdGVRdWV1ZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OnN1Ym1pdChWZWN0
b3I8V2ViR1BVSWRlbnRpZmllcj4mJiBjb21tYW5kQnVmZmVycykKK3sKKyAgICBVTlVTRURfUEFS
QU0oY29tbWFuZEJ1ZmZlcnMpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdv
cmtEb25lKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OndyaXRlQnVm
ZmVyKAorICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyLAorICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgYnVmZmVyT2Zmc2V0LAorICAgIFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpCit7CisgICAgVU5V
U0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlck9mZnNldCk7CisgICAg
VU5VU0VEX1BBUkFNKGRhdGEpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjp3cml0ZVRleHR1cmUo
CisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBW
ZWN0b3I8dWludDhfdD4mJiBkYXRhLAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0
JiBkYXRhTGF5b3V0LAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIHNpemUpCit7CisgICAg
VU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAg
VU5VU0VEX1BBUkFNKGRhdGFMYXlvdXQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwor
dm9pZCBSZW1vdGVRdWV1ZTo6Y29weUV4dGVybmFsSW1hZ2VUb1RleHR1cmUoCisgICAgY29uc3Qg
V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkJiBkZXN0aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6
OkV4dGVudDNEJiBjb3B5U2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUXVldWU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVO
VVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMzAxZGFkMTU4
MzNkNjE3NzMyM2Q0Y2RjNjI1YTNlMmJkMmFjZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmgKQEAgLTAsMCAr
MSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldl
YkdQVUV4dGVudDNELmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5
cGVzLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFF1ZXVlOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitzdHJ1Y3QgSW1hZ2VDb3B5
RXh0ZXJuYWxJbWFnZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworc3RydWN0IEltYWdlQ29w
eVRleHR1cmVUYWdnZWQ7CitzdHJ1Y3QgSW1hZ2VEYXRhTGF5b3V0OworY2xhc3MgT2JqZWN0SGVh
cDsKK30KKworY2xhc3MgUmVtb3RlUXVldWUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUXVldWU+IGNyZWF0
ZShQQUw6OldlYkdQVTo6UXVldWUmIHF1ZXVlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhl
YXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVRdWV1ZShxdWV1
ZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVF1ZXVlKCk7CisK
K3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVRdWV1
ZShQQUw6OldlYkdQVTo6UXVldWUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90
ZVF1ZXVlKGNvbnN0IFJlbW90ZVF1ZXVlJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVldWUoUmVt
b3RlUXVldWUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVldWUmIG9wZXJhdG9yPShjb25zdCBS
ZW1vdGVRdWV1ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXVlJiBvcGVyYXRvcj0oUmVtb3Rl
UXVldWUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQ
Qzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKwor
ICAgIHZvaWQgc3VibWl0KFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiYmKTsKKworICAgIHZvaWQg
b25TdWJtaXR0ZWRXb3JrRG9uZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisK
KyAgICB2b2lkIHdyaXRlQnVmZmVyKAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwKKyAgICAgICAgVmVjdG9yPHVpbnQ4
X3Q+JiYpOworCisgICAgdm9pZCB3cml0ZVRleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiYm
LAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlRGF0YUxheW91dCYsCisgICAgICAgIGNvbnN0
IFdlYkdQVTo6RXh0ZW50M0QmIHNpemUpOworCisgICAgdm9pZCBjb3B5RXh0ZXJuYWxJbWFnZVRv
VGV4dHVyZSgKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBz
b3VyY2UsCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCYgZGVz
dGluYXRpb24sCisgICAgICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKTsKKwor
ICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpRdWV1
ZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVRdWV1ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY3NjBiYjMy
NmQ1Mjg5ZWU0YjRhY2YyMGJjYzc4YmE0MTczNGY1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzNSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
K21lc3NhZ2VzIC0+IFJlbW90ZVF1ZXVlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IFN1Ym1pdChWZWN0b3I8V2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyPiBjb21tYW5kQnVmZmVycykK
KyAgICB2b2lkIE9uU3VibWl0dGVkV29ya0RvbmUoKSAtPiAoKSBTeW5jaHJvbm91cworICAgIHZv
aWQgV3JpdGVCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6
V2ViR1BVOjpTaXplNjQgYnVmZmVyT2Zmc2V0LCBWZWN0b3I8dWludDhfdD4gZGF0YSkKKyAgICB2
b2lkIFdyaXRlVGV4dHVyZShXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5h
dGlvbiwgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEsIFdlYktpdDo6V2ViR1BVOjpJbWFnZURhdGFMYXlv
dXQgaW1hZ2VEYXRhTGF5b3V0LCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0Qgc2l6ZSkKKyAgICB2
b2lkIENvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlF
eHRlcm5hbEltYWdlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdn
ZWQgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICB2
b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
ckJ1bmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk0MDU3OWUyZDkwZTZhYjAxOWYzNWQwYjk2NzE0ZTkx
MzY4MzhlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlckJ1bmRs
ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0
SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxl
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVSZW5kZXJCdW5kbGU6OlJlbW90ZVJl
bmRlckJ1bmRsZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlJiByZW5kZXJCdW5kbGUsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJCdW5kbGUp
CisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUmVuZGVyQnVu
ZGxlOjp+UmVtb3RlUmVuZGVyQnVuZGxlKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5k
bGU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UyYWIwNGZjYjE0NTY5
ZmVhM2RlNWI5NGQ3OTVhNGNkNGJmNzI4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmgKQEAgLTAs
MCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
V2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFJlbmRl
ckJ1bmRsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgewor
Y2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUmVuZGVyQnVuZGxlIGZpbmFsIDog
cHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFJlbW90ZVJlbmRlckJ1bmRsZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUm
IHJlbmRlckJ1bmRsZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyQnVuZGxlKHJlbmRlckJ1bmRs
ZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVJlbmRlckJ1bmRs
ZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVt
b3RlUmVuZGVyQnVuZGxlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUmLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZShjb25zdCBSZW1vdGVSZW5kZXJCdW5k
bGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUoUmVtb3RlUmVuZGVyQnVuZGxl
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZSYgb3BlcmF0b3I9KGNvbnN0IFJl
bW90ZVJlbmRlckJ1bmRsZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZSYgb3Bl
cmF0b3I9KFJlbW90ZVJlbmRlckJ1bmRsZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6
Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRl
ckJ1bmRsZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzEyMjZjZjdmODEwZmVkMGM3OTRmMDAy
YjdmZWMyNzc0Mzg1MDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2Vz
IC0+IFJlbW90ZVJlbmRlckJ1bmRsZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBT
ZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE2NTI3ZjJmZjk5OTQ4MzU1NGU1OWRm
OGQ0NWZkYmZlY2RjYjliMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKQEAgLTAs
MCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihQ
QUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciYgcmVuZGVyQnVuZGxlRW5jb2RlciwgV2Vi
R1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlckJ1bmRs
ZUVuY29kZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoKQoreworfQor
Cit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldFBpcGVsaW5lKFdlYkdQVUlkZW50
aWZpZXIgcmVuZGVyUGlwZWxpbmUpCit7CisgICAgVU5VU0VEX1BBUkFNKHJlbmRlclBpcGVsaW5l
KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihX
ZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0IGluZGV4Rm9y
bWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6U2l6ZTY0PiBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNF
RF9QQVJBTShpbmRleEZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5V
U0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVy
IGJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc2xvdCk7CisgICAgVU5V
U0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VE
X1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRyYXco
UEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0
YW5jZUNvdW50LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RWZXJ0ZXgsIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkKK3sKKyAgICBVTlVTRURfUEFSQU0odmVydGV4Q291
bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKKyAgICBVTlVTRURfUEFSQU0o
Zmlyc3RWZXJ0ZXgpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKK30KKwordm9p
ZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6
ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5kZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9m
ZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNl
KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5kZXgpOworICAgIFVOVVNFRF9Q
QVJBTShiYXNlVmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0o
aW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRy
YXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJl
Y3RCdWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdE9mZnNldCk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRl
eDMyIGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGJpbmRHcm91cCwKKyAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNl
dHMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdy
b3VwKTsKKyAgICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNldHMpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworfQorCit2b2lkIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnBvcERlYnVnR3JvdXAoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQor
eworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjk4NTIyMTA0Nzc0NzUyYTBkNTFkNTM3ZTZk
NTYyN2M3Yjk5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMCwwICsxLDEw
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhG
b3JtYXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlw
ZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJCdW5kbGVFbmNvZGVy
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBP
YmplY3RIZWFwOworc3RydWN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyJiByZW5kZXJCdW5k
bGVFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKHJlbmRlckJ1
bmRsZUVuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB+UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2RlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOwor
CisgICAgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
RW5jb2RlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcihjb25zdCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJikgPSBkZWxldGU7CisgICAg
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJiYpID0g
ZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXImIG9wZXJhdG9yPShjb25zdCBS
ZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXImJikgPSBkZWxl
dGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UGlw
ZWxpbmUoV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNldEluZGV4QnVmZmVyKFdlYkdQ
VUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2
NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4pOworICAgIHZvaWQg
c2V0VmVydGV4QnVmZmVyKFBBTDo6V2ViR1BVOjpJbmRleDMyIHNsb3QsIFdlYkdQVUlkZW50aWZp
ZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpTaXplNjQ+KTsKKworICAgIHZvaWQgZHJhdyhQQUw6OldlYkdQVTo6U2l6ZTMyIHZlcnRleENv
dW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5j
ZSk7CisgICAgdm9pZCBkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQs
IFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlNpemUzMiBmaXJzdEluZGV4LAorICAgICAgICBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIg
YmFzZVZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKTsK
KworICAgIHZvaWQgZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIs
IFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpOworICAgIHZvaWQgZHJhd0luZGV4
ZWRJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6
U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsKKworICAgIHZvaWQgc2V0QmluZEdyb3VwKFBBTDo6V2Vi
R1BVOjpJbmRleDMyLCBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMp
OworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKTsKKyAgICB2
b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFya2VyKFN0cmluZyYm
IG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgZmluaXNoKGNvbnN0IFdlYkdQVTo6UmVuZGVyQnVu
ZGxlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRMYWJlbChT
dHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+IG1f
YmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lM2Y3Y2Y5MDM3MGNjNjcyOTE0ZjFmMjJlMTM0MDg3ZmE5ZGUxMmNiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDIgQEAK
Ky8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldFBp
cGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgU2V0
SW5kZXhCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2Vi
R1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIFNldFZl
cnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIERyYXcoUEFMOjpXZWJHUFU6
OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
SW5zdGFuY2UpCisgICAgdm9pZCBEcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4
Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNp
emUzMiBmaXJzdEluZGV4LCBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwg
UEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGlyZWN0
KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIERyYXdJbmRleGVkSW5kaXJlY3QoV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGlu
ZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgU2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMy
IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiBkeW5hbWljT2Zmc2V0
cykKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmluZyBncm91cExhYmVsKQorICAgIHZvaWQg
UG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcgbWFya2Vy
TGFiZWwpCisgICAgdm9pZCBGaW5pc2goV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWM5NzI5Y2UxYWQwOTU4NjNm
NjUwNDMzMGY5ZDUyMTVlNjQ1OTJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKQEAg
LTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoUEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiByZW5kZXJQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlclBhc3NFbmNvZGVyKQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjp+UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoKQoreworfQorCit2b2lkIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyIHJlbmRlclBpcGVs
aW5lKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJQaXBlbGluZSk7Cit9CisKK3ZvaWQgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldEluZGV4QnVmZmVyKFdlYkdQVUlkZW50aWZpZXIgYnVm
ZmVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpT
aXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4Rm9ybWF0
KTsKKyAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihQQUw6Oldl
YkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6
OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oc2xvdCk7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7Cisg
ICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQorCit2
b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVy
dGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFu
Y2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHZlcnRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0VmVydGV4KTsKKyAgICBVTlVT
RURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXI6OmRyYXdJbmRleGVkKFBBTDo6V2ViR1BVOjpTaXplMzIgaW5kZXhDb3VudCwgUEFMOjpXZWJH
UFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJ
bmRleCwKKyAgICBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwKKyAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
ZGV4Q291bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKKyAgICBVTlVTRURf
UEFSQU0oZmlyc3RJbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VWZXJ0ZXgpOworICAgIFVO
VVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlcjo6ZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6
V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGly
ZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lk
IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0o
aW5kaXJlY3RCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRC
aW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgYmlu
ZEdyb3VwLAorICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5h
bWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kZXgp
OworICAgIFVOVVNFRF9QQVJBTShiaW5kR3JvdXApOworICAgIFVOVVNFRF9QQVJBTShkeW5hbWlj
T2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwp
OworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3Ry
aW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQoZmxvYXQgeCwgZmxv
YXQgeSwKKyAgICBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LAorICAgIGZsb2F0IG1pbkRlcHRo
LCBmbG9hdCBtYXhEZXB0aCkKK3sKKyAgICBVTlVTRURfUEFSQU0oeCk7CisgICAgVU5VU0VEX1BB
UkFNKHkpOworICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7CisgICAgVU5VU0VEX1BBUkFNKGhlaWdo
dCk7CisgICAgVU5VU0VEX1BBUkFNKG1pbkRlcHRoKTsKKyAgICBVTlVTRURfUEFSQU0obWF4RGVw
dGgpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdChQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlIHksCisgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHdpZHRoLCBQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0KQoreworICAgIFVOVVNFRF9QQVJBTSh4
KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CisgICAgVU5VU0VEX1BBUkFNKHdpZHRoKTsKKyAgICBV
TlVTRURfUEFSQU0oaGVpZ2h0KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0QmxlbmRDb25zdGFudChXZWJHUFU6OkNvbG9yIGNvbG9yKQoreworICAgIFVOVVNFRF9QQVJB
TShjb2xvcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxS
ZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpCit7CisgICAg
VU5VU0VEX1BBUkFNKHN0ZW5jaWxWYWx1ZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXI6OmJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4
KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZW5kT2NjbHVzaW9uUXVlcnkoKQoreworfQorCit2b2lkIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50
aWZpZXIgcXVlcnlTZXQsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKK3sKKyAgICBV
TlVTRURfUEFSQU0ocXVlcnlTZXQpOworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVl
cnkoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpleGVjdXRlQnVuZGxl
cyhWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJiByZW5kZXJCdW5kbGVzKQoreworICAgIFVOVVNF
RF9QQVJBTShyZW5kZXJCdW5kbGVzKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cjo6ZW5kUGFzcygpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldExh
YmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5M2Y2ODllMzI5ZmQ2
NTYxODk2NTQ4YWQxYTE0OThjMjExMDk5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmgK
QEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUNvbG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaD4KKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQ
QUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJQYXNzRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xh
c3MgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXImIHJlbmRlclBhc3NF
bmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlcihyZW5kZXJQYXNzRW5j
b2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIH5SZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXIoUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiwgV2Vi
R1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcihjb25zdCBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90
ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3Ry
ZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7CisKKyAgICB2b2lkIHNldFBpcGVsaW5lKFdlYkdQVUlkZW50aWZpZXIpOworCisg
ICAgdm9pZCBzZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5k
ZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTaXplNjQ+KTsKKyAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6
SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNl
dCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0Pik7CisKKyAgICB2b2lkIGRyYXco
UEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0
YW5jZUNvdW50LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6
OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworICAgIHZvaWQgZHJhd0luZGV4ZWQoUEFM
OjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNl
Q291bnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSk7CisKKyAgICB2b2lkIGRyYXdJbmRpcmVjdChXZWJH
UFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0
T2Zmc2V0KTsKKyAgICB2b2lkIGRyYXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBp
bmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAg
ICB2b2lkIHNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmll
ciwKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFt
aWNPZmZzZXQ+PiYmIGR5bmFtaWNPZmZzZXRzKTsKKworICAgIHZvaWQgcHVzaERlYnVnR3JvdXAo
U3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9p
ZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lkIHNl
dFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0IHksCisgICAgICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsCisgICAgICAgIGZsb2F0IG1pbkRlcHRoLCBmbG9hdCBtYXhEZXB0aCk7CisKKyAgICB2
b2lkIHNldFNjaXNzb3JSZWN0KFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4LCBQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlIHdpZHRoLCBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0
KTsKKworICAgIHZvaWQgc2V0QmxlbmRDb25zdGFudChXZWJHUFU6OkNvbG9yKTsKKyAgICB2b2lk
IHNldFN0ZW5jaWxSZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSk7CisKKyAgICB2
b2lkIGJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsK
KyAgICB2b2lkIGVuZE9jY2x1c2lvblF1ZXJ5KCk7CisKKyAgICB2b2lkIGJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVy
eUluZGV4KTsKKyAgICB2b2lkIGVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CisKKyAgICB2
b2lkIGV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiYmKTsKKyAgICB2b2lk
IGVuZFBhc3MoKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBB
TDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6
Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThiN2JhYWE4ZWFjMDli
Mzc1Y2ZiYTc4NGE5ZDMyOGJkZDZiNmFlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSw1MSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyIE5vdFJlZkNvdW50ZWQg
U3RyZWFtIHsKKyAgICB2b2lkIFNldFBpcGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorICAgIHZvaWQgU2V0SW5kZXhCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFM
OjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2
ND4gc2l6ZSkKKyAgICB2b2lkIFNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBz
bG90LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAg
ICB2b2lkIERyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6
OlNpemUzMiBpbnN0YW5jZUNvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCisgICAgdm9pZCBEcmF3SW5kZXhlZChQ
QUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFu
Y2VDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LCBQQUw6OldlYkdQVTo6U2ln
bmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNl
KQorICAgIHZvaWQgRHJhd0luZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVj
dEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIERy
YXdJbmRleGVkSW5kaXJlY3QoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVy
LCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgU2V0QmluZEdy
b3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFt
aWNPZmZzZXQ+PiBkeW5hbWljT2Zmc2V0cykKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmlu
ZyBncm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnRE
ZWJ1Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBTZXRWaWV3cG9ydChmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBtaW5EZXB0aCwg
ZmxvYXQgbWF4RGVwdGgpCisgICAgdm9pZCBTZXRTY2lzc29yUmVjdChQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHksIFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlIGhlaWdodCkKKyAgICB2b2lkIFNldEJsZW5kQ29uc3RhbnQoV2ViS2l0OjpXZWJHUFU6
OkNvbG9yIGNvbG9yKQorICAgIHZvaWQgU2V0U3RlbmNpbFJlZmVyZW5jZShQQUw6OldlYkdQVTo6
U3RlbmNpbFZhbHVlIHN0ZW5jaWxWYWx1ZSkKKyAgICB2b2lkIEJlZ2luT2NjbHVzaW9uUXVlcnko
UEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgRW5kT2NjbHVzaW9uUXVl
cnkoKQorICAgIHZvaWQgQmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQor
ICAgIHZvaWQgRW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQorICAgIHZvaWQgRXhlY3V0ZUJ1
bmRsZXMoVmVjdG9yPFdlYktpdDo6V2ViR1BVSWRlbnRpZmllcj4gYnVuZGxlcykKKyAgICB2b2lk
IEVuZFBhc3MoKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E0MGE5MDM2NDk5
MWVjNjRkZDMwYjQwZGRiZTc2YmJlOTdmMTc1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3Bw
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVuZGVyUGlwZWxpbmUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZW1vdGVSZW5kZXJQaXBlbGluZTo6UmVtb3RlUmVuZGVyUGlwZWxpbmUoUEFMOjpXZWJHUFU6OlJl
bmRlclBpcGVsaW5lJiByZW5kZXJQaXBlbGluZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RI
ZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlclBpcGVsaW5lKQorICAgICwgbV9vYmplY3RIZWFw
KG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVuZGVy
UGlwZWxpbmUoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBpcGVsaW5lOjpnZXRCaW5kR3Jv
dXBMYXlvdXQodWludDMyX3QgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVs
aW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmRlODhmY2FlNjk1MTgwNThjMjRmOWQxZWQ3NzI5NTIxY2U5OThj
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVyUGlwZWxpbmU7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9
CisKK2NsYXNzIFJlbW90ZVJlbmRlclBpcGVsaW5lIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFt
TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRlclBp
cGVsaW5lPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lJiByZW5kZXJQaXBlbGlu
ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyUGlwZWxpbmUocmVuZGVyUGlwZWxpbmUsIG9iamVj
dEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVSZW5kZXJQaXBlbGluZSgpOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUmVu
ZGVyUGlwZWxpbmUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZShjb25zdCBSZW1vdGVSZW5kZXJQaXBl
bGluZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBpcGVsaW5lKFJlbW90ZVJlbmRlclBp
cGVsaW5lJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBpcGVsaW5lJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlUmVuZGVyUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQ
aXBlbGluZSYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlclBpcGVsaW5lJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGdldEJpbmRHcm91cExh
eW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNldExh
YmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+IG1f
YmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNjODc5NDc3NGUwODY4MWRkOGQwYWIwZjEwNjI4N2ZmMmYzM2MzNWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJQaXBlbGluZSBO
b3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBHZXRCaW5kR3JvdXBMYXlvdXQodWludDMy
X3QgaW5kZXgsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICB2b2lk
IFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYjI0NmM4YzU2MGE3NzJhYmFlZTgwNGM2MWQ1NTg4YTA3NjU2ZDFiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVTYW1wbGVyLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZXIuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIoUEFMOjpXZWJHUFU6OlNhbXBsZXImIHNhbXBs
ZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhzYW1w
bGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVNhbXBs
ZXI6On5SZW1vdGVTYW1wbGVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVTYW1wbGVyOjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2Ft
cGxlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVT
YW1wbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhjOTcxZTEwNjlhMWE2Njc1ZDljM2IyODVkMTZhNmZlNzE3
ZTJjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlU2FtcGxlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBTYW1wbGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBS
ZW1vdGVTYW1wbGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZXI+IGNyZWF0ZShQQUw6OldlYkdQ
VTo6U2FtcGxlciYgc2FtcGxlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlcihzYW1wbGVyLCBv
YmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlU2FtcGxlcigpOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlU2FtcGxl
cihQQUw6OldlYkdQVTo6U2FtcGxlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVt
b3RlU2FtcGxlcihjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2Ft
cGxlcihSZW1vdGVTYW1wbGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVNhbXBsZXImIG9wZXJh
dG9yPShjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2FtcGxlciYg
b3BlcmF0b3I9KFJlbW90ZVNhbXBsZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVm
PFBBTDo6V2ViR1BVOjpTYW1wbGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0
SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWNkYWMxYjY5Y2M3NmU2MjQ4OTFlODhlYWQ4ZDFkNGE3MDZlNTUxNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICog
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlciBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWYwOTNk
Nzc5YWE3NzFkZWRmZWNlODFlNThlZjg0N2U4ZGM0NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5j
cHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVTaGFkZXJNb2R1bGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVt
b3RlU2hhZGVyTW9kdWxlOjpSZW1vdGVTaGFkZXJNb2R1bGUoUEFMOjpXZWJHUFU6OlNoYWRlck1v
ZHVsZSYgc2hhZGVyTW9kdWxlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
OiBtX2JhY2tpbmcoc2hhZGVyTW9kdWxlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVNoYWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSgpCit7Cit9
CisKK3ZvaWQgUmVtb3RlU2hhZGVyTW9kdWxlOjpjb21waWxhdGlvbkluZm8oV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJik+JiYg
Y2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1v
dGVTaGFkZXJNb2R1bGU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9Q
QVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEx
MjBjMGI1MzgwOTFiYTc0ZGZmNDEwMzBhMWZjOTRkOWUzYjk0MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9k
dWxlLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgiCisjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBTaGFkZXJN
b2R1bGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2Ns
YXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVNoYWRlck1vZHVsZSBmaW5hbCA6IHB1
YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVTaGFkZXJNb2R1bGU+IGNyZWF0ZShQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlJiBz
aGFkZXJNb2R1bGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNoYWRlck1vZHVsZShzaGFkZXJNb2R1bGUs
IG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVTaGFkZXJNb2R1bGUo
KTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90
ZVNoYWRlck1vZHVsZShQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUoY29uc3QgUmVtb3RlU2hhZGVyTW9kdWxl
JikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxlKFJlbW90ZVNoYWRlck1vZHVsZSYm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUmIG9wZXJhdG9yPShjb25zdCBSZW1v
dGVTaGFkZXJNb2R1bGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUmIG9wZXJh
dG9yPShSZW1vdGVTaGFkZXJNb2R1bGUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgY29tcGlsYXRpb25JbmZvKFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiYpPiYmKTsK
KworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpT
aGFkZXJNb2R1bGU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29i
amVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWM4M2FlNmY1YTJmNDFhNjk3OTRmOTExYmMxY2M1ZWE0MTI3ODUwZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVTaGFkZXJN
b2R1bGUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgQ29tcGlsYXRpb25JbmZvKCkg
LT4gKFZlY3RvcjxXZWJLaXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiBtZXNzYWdlcykg
U3luY2hyb25vdXMKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVRleHR1cmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGZkMjRkYzNhNTIzMmYwNDkxZDZkZTk0
ODVjYThlYWI4ODMxZjRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmNwcApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHR1cmUu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUoUEFMOjpX
ZWJHUFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICA6IG1fYmFja2luZyh0ZXh0dXJlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVRleHR1cmU6On5SZW1vdGVUZXh0dXJlKCkKK3sKK30KKwordm9pZCBS
ZW1vdGVUZXh0dXJlOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVUZXh0dXJlOjpkZXN0cm95KCkKK3sKK30KKwor
dm9pZCBSZW1vdGVUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVT
RURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzNWVkMjQ4
OWY1NzYzYWFmMjhmMDZlNGVmODc0YTVlMDYyZDJlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBUZXh0
dXJlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFz
cyBPYmplY3RIZWFwOworc3RydWN0IFRleHR1cmVWaWV3RGVzY3JpcHRvcjsKK30KKworY2xhc3Mg
UmVtb3RlVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVUZXh0dXJlPiBjcmVhdGUoUEFMOjpXZWJH
UFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVRleHR1cmUodGV4dHVyZSwg
b2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmUoKTsKKwor
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVRleHR1
cmUoUEFMOjpXZWJHUFU6OlRleHR1cmUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJl
bW90ZVRleHR1cmUoY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVRl
eHR1cmUoUmVtb3RlVGV4dHVyZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlJiBvcGVy
YXRvcj0oY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVRleHR1cmUm
IG9wZXJhdG9yPShSZW1vdGVUZXh0dXJlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNl
aXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25h
bDxXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mLCBXZWJHUFVJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAg
ICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpP
YmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ZlOWY2MGRjYjk5NjRiZWM1OGVlMDEwMzdmOWVmZDYzZTlh
NmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVUZXh0dXJl
IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIENyZWF0ZVZpZXcoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIERlc3Ryb3koKQorICAg
IHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0
dXJlVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhNGE3ODYzNmFmYmUxYWJiZGIyNjM4NWJjZjg4ODg1
MTE1MmNmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlVGV4dHVyZVZpZXcu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3Lmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVUZXh0dXJlVmlldzo6UmVtb3RlVGV4dHVy
ZVZpZXcoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3JiB0ZXh0dXJlVmlldywgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHRleHR1cmVWaWV3KQorICAgICwg
bV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVRleHR1cmVWaWV3Ojp+UmVt
b3RlVGV4dHVyZVZpZXcoKQoreworfQorCit2b2lkIFJlbW90ZVRleHR1cmVWaWV3OjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4
dHVyZVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlVGV4dHVyZVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDA1ZmNhZGJlNDc3MThkZDlkMDlhZDQzOTQ5
NjFkNzM1MGRkZDJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5oCkBAIC0wLDAgKzEsNzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBUZXh0dXJlVmlldzsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVh
cDsKK30KKworY2xhc3MgUmVtb3RlVGV4dHVyZVZpZXcgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlVGV4dHVy
ZVZpZXc+IGNyZWF0ZShQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIHRleHR1cmVWaWV3LCBXZWJH
UFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZW1vdGVUZXh0dXJlVmlldyh0ZXh0dXJlVmlldywgb2JqZWN0SGVhcCkpOworICAg
IH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmVWaWV3KCk7CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVUZXh0dXJlVmlldyhQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXcmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVRl
eHR1cmVWaWV3KGNvbnN0IFJlbW90ZVRleHR1cmVWaWV3JikgPSBkZWxldGU7CisgICAgUmVtb3Rl
VGV4dHVyZVZpZXcoUmVtb3RlVGV4dHVyZVZpZXcmJikgPSBkZWxldGU7CisgICAgUmVtb3RlVGV4
dHVyZVZpZXcmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVUZXh0dXJlVmlldyYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZVRleHR1cmVWaWV3JiBvcGVyYXRvcj0oUmVtb3RlVGV4dHVyZVZpZXcmJikgPSBk
ZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0
TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4gbV9i
YWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBm
ZGJiMDAzMDg3ZjNmY2M4ZmE0MDBjMDQyM2MxYjQ3MjQ5NjY5ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZp
ZXcubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVRleHR1cmVWaWV3IE5vdFJlZkNvdW50ZWQg
U3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVPYmplY3RIZWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjBlOTRmNmMyMTBiMGIwYzA5YWFm
YTg5NjY0N2VkMWZmNzY5NTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcApAQCAtMCwwICsxLDIz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVP
YmplY3RIZWFwLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQWRhcHRlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlci5oPgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmg+CisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUXVldWUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlckJ1bmRsZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVu
ZGVyQnVuZGxlRW5jb2Rlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
YW1wbGVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1
bGUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK09iamVjdEhlYXA6Ok9iamVjdEhlYXAoKQoreworfQor
CitPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCgpCit7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpB
ZGFwdGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+PihpdGVyYXRvci0+
dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVm
PFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJh
dG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
b2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6
OkJpbmRHcm91cD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cD4+KGl0ZXJhdG9y
LT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQq
IE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5k
KGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0
ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+Pihp
dGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3Rk
OjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBPYmplY3RIZWFwOjpjb252
ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRl
cmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQ
QUw6OldlYkdQVTo6QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZm
ZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmlu
ZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFz
dGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlcj4+KGl0
ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0
cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIE9iamVjdEhlYXA6
OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6
OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitj
b25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0
Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0
aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVy
dENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAg
aWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJH
UFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0
IFBBTDo6V2ViR1BVOjpEZXZpY2UqIE9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1f
b2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMu
ZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+
PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
c3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+PihpdGVyYXRvci0+dmFsdWUpLnB0cigp
OworfQorCitjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
R1BVPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6R1BVPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIo
KTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBPYmplY3RIZWFwOjpj
b252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwor
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OlBpcGVsaW5lTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UXVlcnlTZXRGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpR
dWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0Pj4oaXRlcmF0b3ItPnZh
bHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBPYmplY3RIZWFwOjpj
b252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChp
dGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
PFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZUVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBt
X29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3Rz
LmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVy
QnVuZGxlRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29k
ZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6UmVu
ZGVyQnVuZGxlKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVj
dHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgp
IHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
Pj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0
ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9yLT52
YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8
UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBsZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRl
cmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0g
bV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQ
VTo6U2FtcGxlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+PihpdGVyYXRvci0+
dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlm
aWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRz
X2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZh
bHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQ
QUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKwor
Y29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIE9iamVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
VGV4dHVyZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+PihpdGVyYXRvci0+dmFs
dWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIE9iamVjdEhl
YXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3Pj4oaXRlcmF0b3ItPnZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXc+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gSEFWRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
T2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVPYmplY3RIZWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ2ZDFlNTE3OTdiNjZhMGUzNmU2OGI3YzUx
MGJiNTAyYmQwMTk2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCkBAIC0wLDAgKzEsMTAwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHZhcmlhbnQ+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CisKK2NsYXNzIE9iamVjdEhlYXAgZmluYWwgOiBwdWJsaWMgV2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE9iamVjdEhlYXA+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmplY3RIZWFwKCkpOwor
ICAgIH0KKworICAgIH5PYmplY3RIZWFwKCk7CisKK3ByaXZhdGU6CisgICAgT2JqZWN0SGVhcCgp
OworCisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkFkYXB0ZXIqIGNvbnZlcnRBZGFwdGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkJp
bmRHcm91cCogY29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZp
bmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIGNvbnZlcnRCaW5k
R3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25z
dCBQQUw6OldlYkdQVTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNv
bnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Cisg
ICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29k
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6Oldl
YkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZSogY29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIGNvbnZlcnRE
ZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6
OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxp
bmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQ
QUw6OldlYkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1
ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6
OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlciog
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0UmVuZGVy
UGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQ
QUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBjb252
ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAg
Y29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
KworICAgIHVzaW5nIE9iamVjdCA9IHN0ZDo6dmFyaWFudDwKKyAgICAgICAgUmVmPFBBTDo6V2Vi
R1BVOjpBZGFwdGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+LAorICAg
ICAgICBSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4sCisgICAgICAgIFJlZjxQQUw6
OldlYkdQVTo6QnVmZmVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVy
PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4sCisgICAgICAgIFJl
ZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGlwZWxpbmU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4s
CisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6R1BVPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BV
OjpQaXBlbGluZUxheW91dD4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+LAor
ICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPiwKKyAg
ICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4sCisgICAgICAgIFJlZjxQQUw6
OldlYkdQVTo6U2FtcGxlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxl
PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPiwKKyAgICAgICAgUmVmPFBBTDo6
V2ViR1BVOjpUZXh0dXJlVmlldz4KKyAgICA+OworICAgIEhhc2hNYXA8V2ViR1BVSWRlbnRpZmll
ciwgT2JqZWN0PiBtX29iamVjdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5jcHAKaW5kZXggN2U1ZWRmZWQ5ODAxNWE0YTQ0MzA5ODdkMmZhN2M3OWYzMTYw
OTkzZC4uYzRmMWNhOWMyZWQyMWVhMDY1ZmIxMTIxM2I4NDhlYjc2YWNmZDlhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
ci5oIgogCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IkdQVVByb2Nlc3MuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9M
b2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggYTEzNDRhZWExOTNjOThh
ZGU0MTJjMWViYmRkNWNmNzI5ZDlmN2NiNS4uMWVmZGUzYmY3NjVjMTYzYTc1YjQ1OGM0YTU2Nzli
YTQ4YTZmOGE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2Nh
bEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTMxLDYg
KzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7CisKIGNsYXNzIExvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IgZmlu
YWwKICAgICA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25D
bGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHku
aAppbmRleCA4ZjdkMzYzM2RkMDJkOTBhMWE1NjA0YTAwNjM0ZTMxZmE1MWI1N2ZhLi4yNzBlMWVi
ZTMxMjM1Zjc3ODZkZjA3YjkwMDBhMWM4N2E1N2QyN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHku
aApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGVzdGluYXRpb25Db2xv
clNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2Vu
ZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRl
LXVuaWZpZWQtc291cmNlcy5zaAppbmRleCBlYzEzMzI2ZmIwZWU4NWRkOTYwNjJlNmE0OWUxMmUx
NTU0NTE2ZjA1Li44NTJjMjU4YzdlNGMyYzMyOGQ1MDdiOWY1MmFjNDc4NTlmMzFiZGU4IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNo
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gK
QEAgLTE0LDcgKzE0LDcgQEAgaWYgWyAteiAiJHtCVUlMRF9TQ1JJUFRTX0RJUn0iIF07IHRoZW4K
ICAgICBmaQogZmkKIAotVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD0xMDAKK1VuaWZpZWRTb3Vy
Y2VDcHBGaWxlQ291bnQ9MTAzCiBVbmlmaWVkU291cmNlTW1GaWxlQ291bnQ9ODAKIAogaWYgWyAk
IyAtZXEgMCBdOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpp
bmRleCA4YmQwZGIyOTdiZmI0MDc0ZjY4OTAwNDJmY2RhNDc4NDUwZGYwNTY2Li4zMTk2YzVjZjU4
NmQyNGUxMDZhZjJiYWIwMWVjYjk0MmRlMWI0ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM1OCw2ICszNTgsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5u
b3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpUcmFuc2FjdGlvbklE
JywKICAgICAgICAgJ1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXInLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYktpdDo6WFJEZXZpY2VJZGVudGlmaWVyJywKQEAgLTY3OCwyMSArNjc5
LDY5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgIGhlYWRlcl9pbmZvc19hbmRf
dHlwZXMgPSBjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKHR5cGUpCiAKICAgICBzcGVjaWFsX2Nhc2Vz
ID0gewotICAgICAgICAnTWFjaFNlbmRSaWdodCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10s
Ci0gICAgICAgICdKU0M6Ok1lc3NhZ2VMZXZlbCc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVU
eXBlcy5oPiddLAotICAgICAgICAnSlNDOjpNZXNzYWdlU291cmNlJzogWyc8SmF2YVNjcmlwdENv
cmUvQ29uc29sZVR5cGVzLmg+J10sCiAgICAgICAgICdJUEM6OlNlbWFwaG9yZSc6IFsnIklQQ1Nl
bWFwaG9yZS5oIiddLAogICAgICAgICAnSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcic6IFsnIklu
c3BlY3RvckV4dGVuc2lvblR5cGVzLmgiJ10sCiAgICAgICAgICdJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbDo6Q29ubmVjdGlvblR5cGUnOiBbJzxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaD4nXSwKICAgICAgICAgJ0luc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0VHlw
ZSc6IFsnPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclRhcmdldC5oPiddLAotICAgICAgICAnV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9EaXNw
bGF5TGlzdC5oPiddLAorICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKKyAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsn
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLAorICAgICAgICAnTWFjaFNlbmRSaWdo
dCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10sCiAgICAgICAgICdNZWRpYVRpbWUnOiBbJzx3
dGYvTWVkaWFUaW1lLmg+J10sCiAgICAgICAgICdNb25vdG9uaWNUaW1lJzogWyc8d3RmL01vbm90
b25pY1RpbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25J
RC5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlJzogWyc8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6
OkJsZW5kRmFjdG9yJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rvci5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uJzogWyc8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OkJ1ZmZlckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZm
ZXJCaW5kaW5nVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNP
ZmZzZXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzJzogWyc8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNh
bnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
YW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNv
bG9yV3JpdGVGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JXcml0ZS5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbic6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg+J10sCisgICAgICAgICdQQUw6Oldl
YkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNv
bXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BV
OjpDdWxsTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpEZXB0aEJpYXMnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpEZXZpY2VM
b3N0UmVhc29uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29u
Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXInOiBbJzxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6
RmVhdHVyZU5hbWUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg+
J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RmlsdGVyTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVRmlsdGVyTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkZsYWdz
Q29uc3RhbnQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpGcm9udEZhY2UnOiBbJzxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZyb250RmFjZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkluZGV4MzIn
OiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAg
ICAgJ1BBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW5kZXhGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAor
ICAgICAgICAnUEFMOjpXZWJHUFU6OkxvYWRPcCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVTG9hZE9wLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmg+J10sCisgICAgICAgICdQQUw6Oldl
YkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpQb3dl
clByZWZlcmVuY2UnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBvd2VyUHJlZmVyZW5j
ZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oPiddLAorICAg
ICAgICAnUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5JzogWyc8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQcmltaXRpdmVUb3BvbG9neS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6
OlF1ZXJ5VHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmg+J10s
CisgICAgICAgICdQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTYW1wbGVNYXNrJzogWyc8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2Ft
cGxlckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmlu
ZGluZ1R5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZUZsYWdzJzog
Wyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJTdGFnZS5oPiddLAorICAgICAgICAn
UEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2l6ZTMyJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQ
QUw6OldlYkdQVTo6U2l6ZTY0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3Jh
bFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbic6IFsn
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oPiddLAorICAgICAg
ICAnUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0
dXJlQWNjZXNzJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3JlT3AnOiBbJzxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0
dXJlQXNwZWN0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0Lmg+
J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbic6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oPiddLAorICAgICAgICAnUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZSc6
IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlVXNhZ2VGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZVVzYWdlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4
dHVyZVZpZXdEaW1lbnNpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVW
aWV3RGltZW5zaW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0Jzog
Wyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaD4nXSwKKyAgICAgICAg
J1BBTDo6V2ViR1BVOjpWZXJ0ZXhTdGVwTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVmVydGV4U3RlcE1vZGUuaD4nXSwKKyAgICAgICAgJ1BsYXRmb3JtWFI6OkRldmljZTo6RnJh
bWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+J10sCiAgICAgICAgICdTZWNvbmRzJzog
Wyc8d3RmL1NlY29uZHMuaD4nXSwKKyAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0
cmluZy5oPiddLAogICAgICAgICAnVVJMJzogWyc8d3RmL1VSTEhhc2guaD4nXSwKICAgICAgICAg
J1dhbGxUaW1lJzogWyc8d3RmL1dhbGxUaW1lLmg+J10sCi0gICAgICAgICdTdHJpbmcnOiBbJzx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKLSAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFs
L1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXJjRGF0YSc6IFsnPFdlYkNvcmUv
SW5saW5lUGF0aERhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFn
cyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QmV6
aWVyQ3VydmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLApAQCAtNzA0LDEy
ICs3NTMsMTQgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3Jl
OjpDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCc6IFsnPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29y
ZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlJzogWyc8V2ViQ29yZS9Db2xvclNwYWNlLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL0Rpc3BsYXlMaXN0
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSc6IFsnPFdl
YkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRPcldv
cmtlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnOiBbJzxXZWJDb3JlL0RyYWdEYXRh
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2QnOiBbJzxXZWJDb3Jl
L0RyYWdBY3Rpb25zLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnT3BlcmF0aW9uJzogWyc8
V2ViQ29yZS9EcmFnQWN0aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ1NvdXJjZUFj
dGlvbic6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkR5
bmFtaWNSYW5nZU1vZGUnOiBbJzxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlJzogWyc8V2ViQ29yZS9HYW1lcGFk
UHJvdmlkZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMn
OiBbJzxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCkBA
IC03MzYsOCArNzg3LDggQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJDb3JlOjpMaW5lSm9pbic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJU
eXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyc6IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCc6IFsnPFdlYkNvcmUv
TWVkaWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZp
dHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5o
PiddLApAQCAtNzk1LDkgKzg0Niw5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAg
ICAgICAnV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8V2Vi
Q29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5mby5oIiddLAotICAgICAgICAnV2ViS2l0OjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUlkZW50aWZpZXInOiBbJyJJZGVudGlmaWVyVHlwZXMuaCIn
XSwKICAgICAgICAgJ1dlYktpdDo6QWxsb3dPdmVyd3JpdGUnOiBbJyJEb3dubG9hZElELmgiJ10s
CiAgICAgICAgICdXZWJLaXQ6OkFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSc6IFsnIkFwcFBy
aXZhY3lSZXBvcnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2VJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLAogICAgICAg
ICAnV2ViS2l0OjpDYWxsRG93bmxvYWREaWRTdGFydCc6IFsnIkRvd25sb2FkTWFuYWdlci5oIidd
LAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJzogWyciQ29udGVudFdv
cmxkU2hhcmVkLmgiJ10sCkBAIC04MTgsMTUgKzg2OSw3OSBAQCBkZWYgaGVhZGVyc19mb3JfdHlw
ZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uVG91Y2gnOiBbJyJHZXN0dXJlVHlw
ZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6VGFwSWRlbnRpZmllcic6IFsnIklkZW50aWZpZXJU
eXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpUZXh0Q2hlY2tlclJlcXVlc3RJRCc6IFsnIklk
ZW50aWZpZXJUeXBlcy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERl
c2NyaXB0b3InOiBbJyJXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwRW50cnknOiBbJyJXZWJHUFVCaW5kR3JvdXBFbnRyeS5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3In
OiBbJyJXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnknOiBbJyJXZWJHUFVCaW5kR3JvdXBMYXlv
dXRFbnRyeS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50Jzog
WyciV2ViR1BVQmxlbmRDb21wb25lbnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpC
bGVuZFN0YXRlJzogWyciV2ViR1BVQmxlbmRTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkJ1ZmZlckJpbmRpbmcnOiBbJyJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dCc6IFsnIldlYkdQVUJ1ZmZl
ckJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCdWZmZXJEZXNj
cmlwdG9yJzogWyciV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb24nOiBbJyJXZWJHUFVDYW52YXNDb25maWd1cmF0
aW9uLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29sb3InOiBbJyJXZWJHUFVDb2xv
ci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3RhdGUnOiBbJyJX
ZWJHUFVDb2xvclRhcmdldFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3InOiBbJyJXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcic6
IFsnIldlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZSc6IFsnIldlYkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcic6
IFsnIldlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzJzogWyciV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yJzogWyciV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQnOiBb
JyJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6Q29udmVydFRvQmFja2luZ0NvbnRleHQnOiBbJyJXZWJHUFVDb252ZXJ0VG9CYWNr
aW5nQ29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkRlcHRoU3RlbmNpbFN0
YXRlJzogWyciV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJzogWyciV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkVycm9yJzogWyciV2ViR1BVRXJyb3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCc6IFsnIldlYkdQVUV4dGVudDNELmgi
J10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dCc6IFsnIldlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJzogWyciV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkZy
YWdtZW50U3RhdGUnOiBbJyJXZWJHUFVGcmFnbWVudFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6SWRlbnRpZmllcic6IFsnIldlYkdQVUlkZW50aWZpZXIuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXInOiBbJyJXZWJHUFVJbWFnZUNvcHlC
dWZmZXIuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbElt
YWdlJzogWyciV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUnOiBbJyJXZWJHUFVJbWFnZUNvcHlUZXh0dXJl
LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCc6
IFsnIldlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpJbWFnZURhdGFMYXlvdXQnOiBbJyJXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlJzogWyciV2ViR1BVTXVs
dGlzYW1wbGVTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok9iamVjdERlc2Ny
aXB0b3JCYXNlJzogWyciV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpPcmlnaW4yRCc6IFsnIldlYkdQVU9yaWdpbjJELmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6T3JpZ2luM0QnOiBbJyJXZWJHUFVPcmlnaW4zRC5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3InOiBbJyJXZWJHUFVPdXRP
Zk1lbW9yeUVycm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSc6IFsnIldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3InOiBbJyJXZWJHUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpQ
cmltaXRpdmVTdGF0ZSc6IFsnIldlYkdQVVByaW1pdGl2ZVN0YXRlLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2UnOiBbJyJXZWJHUFVQcm9ncmFtbWFibGVT
dGFnZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvcic6
IFsnIldlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQnOiBbJyJX
ZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgiJ10sCisgICAgICAgICdXZWJLaXQ6Oldl
YkdQVTo6UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQnOiBbJyJXZWJHUFVSZW5kZXJQ
YXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6
OlJlbmRlclBhc3NEZXNjcmlwdG9yJzogWyciV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0JzogWyciV2ViR1BV
UmVuZGVyUGFzc0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZXMnOiBbJyJXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgi
J10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJzog
WyciV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJzogWyciV2ViR1BVUmVxdWVzdEFkYXB0ZXJP
cHRpb25zLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlv
dXQnOiBbJyJXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJzog
WyciV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGUnOiBbJyJXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Jzog
WyciV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMnOiBbJyJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJl
cy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyc6IFsnIldl
YkdQVVN1cHBvcnRlZExpbWl0cy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlRleHR1
cmVCaW5kaW5nTGF5b3V0JzogWyciV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvcic6IFsnIldlYkdQVVRleHR1
cmVEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdE
ZXNjcmlwdG9yJzogWyciV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yJzogWyciV2ViR1BVVmFsaWRhdGlvbkVy
cm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlJzogWyci
V2ViR1BVVmVydGV4QXR0cmlidXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVy
dGV4QnVmZmVyTGF5b3V0JzogWyciV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4U3RhdGUnOiBbJyJXZWJHUFVWZXJ0ZXhTdGF0ZS5o
IiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUvQ29va2ll
Lmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQnOiBbJzxXZWJD
b3JlL0VsZW1lbnRDb250ZXh0Lmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6VmlkZW9Q
bGF5YmFja1F1YWxpdHlNZXRyaWNzJzogWyc8V2ViQ29yZS9WaWRlb1BsYXliYWNrUXVhbGl0eU1l
dHJpY3MuaD4nXSwKKyAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3NhZ2VIYW5k
bGVyRGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLAogICAg
ICAgICAnc3RydWN0IFdlYktpdDo6V2ViVXNlclNjcmlwdERhdGEnOiBbJyJXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlVz
ZXJTdHlsZVNoZWV0RGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5o
IiddLAotICAgICAgICAnc3RydWN0IFdlYktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRh
JzogWyciV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICd3
ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8nOiBbJzx3ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRFbmNvZGVyLmg+JywgJzxXZWJDb3JlL0xpYldlYlJUQ0VudW1UcmFpdHMuaD4nXSwKLSAgICAg
ICAgJ1BsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhS
Lmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlJzogWyc8V2ViQ29yZS9Q
bGF0Zm9ybVNjcmVlbi5oPiddLAogICAgIH0KIAogICAgIGhlYWRlcnMgPSBbXQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
LmgKaW5kZXggMGUwZWJjNDQ3NjBkZTk3Mjc5OTBiYzk3MWJhMTMzODk0NjYyOGFlMy4uYmNjZTVi
OTM4NmQ4OWY3YzBhMTNjOGNhNTNkZDkzYmZlMjVkM2FkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCkBAIC0z
NSw2ICszNSwzMyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJpbmRHcm91
cERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdlYkdQVUlk
ZW50aWZpZXIgYmluZEdyb3VwTGF5b3V0OwogICAgIFZlY3RvcjxCaW5kR3JvdXBFbnRyeT4gZW50
cmllczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNv
bnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJp
bmRHcm91cExheW91dDsKKyAgICAgICAgZW5jb2RlciA8PCBlbnRyaWVzOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cERl
c2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAg
ICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0
RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gYmluZEdyb3VwTGF5b3V0OworICAg
ICAgICBkZWNvZGVyID4+IGJpbmRHcm91cExheW91dDsKKyAgICAgICAgaWYgKCFiaW5kR3JvdXBM
YXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEJpbmRHcm91cEVudHJ5Pj4gZW50cmllczsKKyAgICAgICAgZGVjb2Rl
ciA+PiBlbnRyaWVzOworICAgICAgICBpZiAoIWVudHJpZXMpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3Jp
cHRvckJhc2UpLCBXVEZNb3ZlKCpiaW5kR3JvdXBMYXlvdXQpLCBXVEZNb3ZlKCplbnRyaWVzKSB9
IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKaW5kZXgg
ZjM4ZGQ1MDY3NzY0OTIyNmM0ZDdhMDMwYzlkZTljY2JkNmRkNjYzMy4uZDJmNDlkNTA4NDM3ZGJj
OWRmYmFkN2JlZDg2MTEzMWFjN2Q0ZThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKQEAgLTQ0LDYgKzQ0LDUzIEBAIHN0cnVj
dCBCaW5kR3JvdXBFbnRyeSB7CiAgICAgQnVmZmVyQmluZGluZyBidWZmZXJCaW5kaW5nOwogICAg
IFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBCaW5kaW5nUmVzb3VyY2VUeXBlIHR5
cGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5kaW5nOworICAgICAg
ICBlbmNvZGVyIDw8IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGVuY29kZXIgPDwgaWRlbnRpZmll
cjsKKyAgICAgICAgZW5jb2RlciA8PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cEVudHJ5PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkluZGV4MzI+IGJpbmRpbmc7CisgICAgICAgIGRlY29kZXIgPj4gYmluZGluZzsKKyAgICAgICAg
aWYgKCFiaW5kaW5nKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmc+IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGRl
Y29kZXIgPj4gYnVmZmVyQmluZGluZzsKKyAgICAgICAgaWYgKCFidWZmZXJCaW5kaW5nKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdl
YkdQVUlkZW50aWZpZXI+IGlkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmll
cjsKKyAgICAgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPEJpbmRpbmdSZXNvdXJjZVR5cGU+IHR5cGU7
CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJp
bmRpbmcpLCBXVEZNb3ZlKCpidWZmZXJCaW5kaW5nKSwgV1RGTW92ZSgqaWRlbnRpZmllciksIFdU
Rk1vdmUoKnR5cGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBl
LAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6U2FtcGxlciwK
KyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OlRleHR1cmVWaWV3
LAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6QnVmZmVyQmlu
ZGluZywKKyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OkV4dGVy
bmFsVGV4dHVyZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvci5oCmluZGV4IDY4YmFiZWRiYjY1MzZkNGJkNDBiN2Q1M2I0YWQ5NDY1YjM3ZjY5
ZWIuLmI0ZjBjYjRjNjYyZWYzYWYyZGE1NTgyMDlmMmM3MDhhNTA5YzQ1NWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IuaApAQCAtMzMsNiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKIAogc3RydWN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZW50cmll
czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0
IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGVudHJp
ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8QmluZEdyb3Vw
TGF5b3V0RW50cnk+PiBlbnRyaWVzOworICAgICAgICBkZWNvZGVyID4+IGVudHJpZXM7CisgICAg
ICAgIGlmICghZW50cmllcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUo
KmVudHJpZXMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dEVudHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdy
b3VwTGF5b3V0RW50cnkuaAppbmRleCA0MDJhM2YwOTE5MWU4NThlNTRmYjNlY2E3NDZiOWQzODlk
M2JmOWYwLi5iODMwYTU5MTQ4OTZlNWRmNzI1MmZmNGQwYzYzMjA1YzU5N2RkYzFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5
b3V0RW50cnkuaApAQCAtNDUsNiArNDUsNTcgQEAgc3RydWN0IEJpbmRHcm91cExheW91dEVudHJ5
IHsKICAgICBzdGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiB0ZXh0dXJlOwogICAg
IHN0ZDo6b3B0aW9uYWw8U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0PiBzdG9yYWdlVGV4dHVy
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGV4dGVy
bmFsVGV4dHVyZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGJpbmRpbmc7
CisgICAgICAgIGVuY29kZXIgPDwgdmlzaWJpbGl0eTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZm
ZXI7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlcjsKKyAgICAgICAgZW5jb2RlciA8PCB0ZXh0
dXJlOworICAgICAgICBlbmNvZGVyIDw8IHN0b3JhZ2VUZXh0dXJlOworICAgICAgICBlbmNvZGVy
IDw8IGV4dGVybmFsVGV4dHVyZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bmRleDMyPiBiaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+IGJpbmRpbmc7CisgICAgICAgIGlm
ICghYmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFncz4gdmlzaWJpbGl0eTsK
KyAgICAgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgICAgICBpZiAoIXZpc2liaWxpdHkp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8c3RkOjpvcHRpb25hbDxCdWZmZXJCaW5kaW5nTGF5b3V0Pj4gYnVmZmVyOworICAgICAgICBk
ZWNvZGVyID4+IGJ1ZmZlcjsKKyAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxT
YW1wbGVyQmluZGluZ0xheW91dD4+IHNhbXBsZXI7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxl
cjsKKyAgICAgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8VGV4dHVyZUJpbmRpbmdM
YXlvdXQ+PiB0ZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAgICAgIGlm
ICghdGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4+
IHN0b3JhZ2VUZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHN0b3JhZ2VUZXh0dXJlOworICAg
ICAgICBpZiAoIXN0b3JhZ2VUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8RXh0ZXJuYWxUZXh0dXJl
QmluZGluZ0xheW91dD4+IGV4dGVybmFsVGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiBleHRl
cm5hbFRleHR1cmU7CisgICAgICAgIGlmICghZXh0ZXJuYWxUZXh0dXJlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJpbmRp
bmcpLCBXVEZNb3ZlKCp2aXNpYmlsaXR5KSwgV1RGTW92ZSgqYnVmZmVyKSwgV1RGTW92ZSgqc2Ft
cGxlciksIFdURk1vdmUoKnRleHR1cmUpLCBXVEZNb3ZlKCpzdG9yYWdlVGV4dHVyZSksIFdURk1v
dmUoKmV4dGVybmFsVGV4dHVyZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQmxlbmRDb21wb25lbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVC
bGVuZENvbXBvbmVudC5oCmluZGV4IDk0YWM1YTI0MjBiMjM4MzA2ZmQ1NTk2ZjU0ZjVjNjhiMmI3
NmJiMjIuLmVlYmY5M2U3NGIyYjcxYzVkNmVkNDZhMDc2ODEwNzk4YWZjZDA4ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCkBA
IC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3QgQmxlbmRDb21wb25lbnQgewogICAgIFBBTDo6V2ViR1BV
OjpCbGVuZE9wZXJhdGlvbiBvcGVyYXRpb247CiAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9y
IHNyY0ZhY3RvcjsKICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3IgZHN0RmFjdG9yOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3BlcmF0aW9uOworICAgICAgICBlbmNv
ZGVyIDw8IHNyY0ZhY3RvcjsKKyAgICAgICAgZW5jb2RlciA8PCBkc3RGYWN0b3I7CisgICAgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QmxlbmRD
b21wb25lbnQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb24+IG9wZXJhdGlvbjsKKyAgICAgICAg
ZGVjb2RlciA+PiBvcGVyYXRpb247CisgICAgICAgIGlmICghb3BlcmF0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpCbGVuZEZhY3Rvcj4gc3JjRmFjdG9yOworICAgICAgICBkZWNvZGVyID4+IHNyY0ZhY3Rv
cjsKKyAgICAgICAgaWYgKCFzcmNGYWN0b3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yPiBk
c3RGYWN0b3I7CisgICAgICAgIGRlY29kZXIgPj4gZHN0RmFjdG9yOworICAgICAgICBpZiAoIWRz
dEZhY3RvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpvcGVyYXRpb24pLCBXVEZNb3ZlKCpzcmNGYWN0b3IpLCBXVEZNb3Zl
KCpkc3RGYWN0b3IpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5k
U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgK
aW5kZXggYTQxZjUxN2JjMTJjOTE3YTkyYTJlZTE5YTY0MzgyM2I2NGFhMmZiZi4uOWU4NGJhY2U5
ZWE5OWIzMDVhMzY5MDYyZWViYTY1OWQ2MjllOGZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJsZW5kU3RhdGUgewogICAgIEJsZW5kQ29tcG9u
ZW50IGNvbG9yOwogICAgIEJsZW5kQ29tcG9uZW50IGFscGhhOworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgY29sb3I7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGE7CisgICAg
fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qmxl
bmRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPEJsZW5kQ29tcG9uZW50PiBjb2xvcjsKKyAgICAgICAgZGVjb2RlciA+PiBjb2xvcjsK
KyAgICAgICAgaWYgKCFjb2xvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxCbGVuZENvbXBvbmVudD4gYWxwaGE7CisgICAgICAgIGRl
Y29kZXIgPj4gYWxwaGE7CisgICAgICAgIGlmICghYWxwaGEpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29sb3IpLCBXVEZN
b3ZlKCphbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVy
QmluZGluZy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmcuaAppbmRleCBkNDU5ODFmOWJkMTg1MTRiNzQyOWJlYjEyZTM0MDM5YTU5NWFmODdhLi4zMTZi
NDE2OGExZDljNTEyMjg0ZGEzZWY2YTYyMGEyNzM3ODU4YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKQEAgLTM2LDYgKzM2LDMz
IEBAIHN0cnVjdCBCdWZmZXJCaW5kaW5nIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlcjsK
ICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldDsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTaXplNjQ+IHNpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBidWZmZXI7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8
IHNpemU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8QnVmZmVyQmluZGluZz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGJ1ZmZlcjsKKyAgICAgICAg
ZGVjb2RlciA+PiBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
aXplNjQ+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICgh
b2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4+IHNpemU7CisgICAg
ICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJ1ZmZlciks
IFdURk1vdmUoKm9mZnNldCksIFdURk1vdmUoKnNpemUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgKaW5kZXggZjFmMDE2NWM3MWRj
YmFiYzEzZjRlMjkyNTI1NmI2YzE2NGMxYmZlOC4uZjlkMTEwZTRiMGJiZTY1YjNlZjVhMjZkZGYx
Y2UzMmQ0NGJkZjJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCkBAIC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3Qg
QnVmZmVyQmluZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBl
IHR5cGU7CiAgICAgYm9vbCBoYXNEeW5hbWljT2Zmc2V0OwogICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgbWluQmluZGluZ1NpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB0
eXBlOworICAgICAgICBlbmNvZGVyIDw8IGhhc0R5bmFtaWNPZmZzZXQ7CisgICAgICAgIGVuY29k
ZXIgPDwgbWluQmluZGluZ1NpemU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QnVmZmVyQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpC
dWZmZXJCaW5kaW5nVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAg
ICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaGFzRHluYW1pY09mZnNldDsKKyAgICAgICAgZGVjb2RlciA+
PiBoYXNEeW5hbWljT2Zmc2V0OworICAgICAgICBpZiAoIWhhc0R5bmFtaWNPZmZzZXQpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlNpemU2ND4gbWluQmluZGluZ1NpemU7CisgICAgICAgIGRlY29kZXIgPj4gbWlu
QmluZGluZ1NpemU7CisgICAgICAgIGlmICghbWluQmluZGluZ1NpemUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdHlwZSks
IFdURk1vdmUoKmhhc0R5bmFtaWNPZmZzZXQpLCBXVEZNb3ZlKCptaW5CaW5kaW5nU2l6ZSkgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAppbmRl
eCA2YzdhMTYwZWFkOTQxY2MwM2I3NDRkOWEyNzQxYzhiYTI4MTdlOTVkLi45YzUzNDRhMjRiZjBk
ODlkNjFmNDhkMTFmNmY1Nzk0NWE4ZjAxYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKQEAgLTM1LDYgKzM1LDM5IEBA
IHN0cnVjdCBCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsK
ICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemU7CiAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlclVz
YWdlRmxhZ3MgdXNhZ2U7CiAgICAgYm9vbCBtYXBwZWRBdENyZWF0aW9uOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCB1c2FnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXBwZWRBdENyZWF0aW9uOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJ1ZmZl
ckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZl
clVzYWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBp
ZiAoIXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IG1hcHBlZEF0Q3JlYXRpb247CisgICAgICAgIGRlY29kZXIgPj4g
bWFwcGVkQXRDcmVhdGlvbjsKKyAgICAgICAgaWYgKCFtYXBwZWRBdENyZWF0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
Km9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqc2l6ZSksIFdURk1vdmUoKnVzYWdlKSwg
V1RGTW92ZSgqbWFwcGVkQXRDcmVhdGlvbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaAppbmRleCBiODc2N2YwYTFiMDU4N2VmZTgx
YzE5YTljNjE5MTMxOTkzZjA3OTlmLi44NGI0YjA5NzVhOGQ3MTk0OTQ4ODY1YWFlNzE3ZWVjZTE4
NjBiNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2Fu
dmFzQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDYW52YXNDb25maWd1cmF0aW9uLmgKQEAgLTQ3LDYgKzQ3LDUxIEBAIHN0cnVjdCBDYW52YXND
b25maWd1cmF0aW9uIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29s
b3JTcGFjZTsKICAgICBQQUw6OldlYkdQVTo6Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUgY29t
cG9zaXRpbmdBbHBoYU1vZGU7CiAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6ZTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGRldmljZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgdXNhZ2U7CisgICAgICAgIGVuY29kZXIg
PDwgY29sb3JTcGFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBjb21wb3NpdGluZ0FscGhhTW9kZTsK
KyAgICAgICAgZW5jb2RlciA8PCBzaXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhbnZhc0NvbmZpZ3VyYXRpb24+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVu
dGlmaWVyPiBkZXZpY2U7CisgICAgICAgIGRlY29kZXIgPj4gZGV2aWNlOworICAgICAgICBpZiAo
IWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gZm9ybWF0OworICAgICAgICBk
ZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVVzYWdlRmxh
Z3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBpZiAoIXVzYWdl
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOworICAgICAgICBpZiAoIWNvbG9yU3BhY2UpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlPiBjb21wb3NpdGluZ0FscGhhTW9k
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21wb3NpdGluZ0FscGhhTW9kZTsKKyAgICAgICAgaWYg
KCFjb21wb3NpdGluZ0FscGhhTW9kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEV4dGVudDNEPj4gc2l6ZTsK
KyAgICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZGV2
aWNlKSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2UpLCBXVEZNb3ZlKCpjb2xvclNw
YWNlKSwgV1RGTW92ZSgqY29tcG9zaXRpbmdBbHBoYU1vZGUpLCBXVEZNb3ZlKCpzaXplKSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKaW5kZXggMDc1M2NjNmUwNmRkOThjYzdjMjJi
NjE2ZGVkY2JmZmY3N2U0YmJkOS4uNGUwZjQzOWRmZjViYThhMjQ2MTViMGIzNzhkMTE0MWE4NThh
Nzk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKQEAgLTM2
LDYgKzM2LDM5IEBAIHN0cnVjdCBDb2xvckRpY3QgewogICAgIGRvdWJsZSBnOwogICAgIGRvdWJs
ZSBiOwogICAgIGRvdWJsZSBhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
cjsKKyAgICAgICAgZW5jb2RlciA8PCBnOworICAgICAgICBlbmNvZGVyIDw8IGI7CisgICAgICAg
IGVuY29kZXIgPDwgYTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxDb2xvckRpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHI7CisgICAgICAgIGRlY29kZXIgPj4g
cjsKKyAgICAgICAgaWYgKCFyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZzsKKyAgICAgICAgZGVjb2RlciA+PiBnOwor
ICAgICAgICBpZiAoIWcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBiOworICAgICAgICBkZWNvZGVyID4+IGI7CisgICAg
ICAgIGlmICghYikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxkb3VibGU+IGE7CisgICAgICAgIGRlY29kZXIgPj4gYTsKKyAgICAgICAg
aWYgKCFhKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKnIpLCBXVEZNb3ZlKCpnKSwgV1RGTW92ZSgqYiksIFdURk1vdmUoKmEp
IH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91
YmxlPiwgQ29sb3JEaWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oCmluZGV4IGZiZWU3ODE4NGFmM2YwOWY1YTlmOGI3Y2Zi
MGE3ZjdmNGM5YTNmYjcuLjJlMzAzYzQ3ZTA1MjFhMTI5NDQxNGIwNjljZmUyMzc5MmQzZTZmOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdl
dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFy
Z2V0U3RhdGUuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IENvbG9yVGFyZ2V0U3RhdGUgewog
CiAgICAgc3RkOjpvcHRpb25hbDxCbGVuZFN0YXRlPiBibGVuZDsKICAgICBQQUw6OldlYkdQVTo6
Q29sb3JXcml0ZUZsYWdzIHdyaXRlTWFzazsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBibGVuZDsKKyAgICAgICAgZW5jb2Rl
ciA8PCB3cml0ZU1hc2s7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Q29sb3JUYXJnZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAgICBpZiAoIWZv
cm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6Om9wdGlvbmFsPEJsZW5kU3RhdGU+PiBibGVuZDsKKyAgICAgICAgZGVjb2Rl
ciA+PiBibGVuZDsKKyAgICAgICAgaWYgKCFibGVuZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3JXcml0
ZUZsYWdzPiB3cml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gd3JpdGVNYXNrOworICAgICAg
ICBpZiAoIXdyaXRlTWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpibGVuZCksIFdURk1v
dmUoKndyaXRlTWFzaykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4IDZkYzYzYzNlZjRiNTY1NTFhNmQyNjNh
NmZiYTY4N2JkZjYxOTQ5OTYuLmFmYjYwODNjMDU0NTFmMjUzYzdkMmI1Y2I2YTRiZWI1ZWVmMmMz
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5k
QnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zMCw2ICszMCwyMCBAQAogbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIDogcHVi
bGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxD
b21tYW5kQnVmZmVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlw
dG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAg
ICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFz
ZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVu
Y29kZXJEZXNjcmlwdG9yLmgKaW5kZXggZjA3YTVmMDA3MzE5YWM5N2QxMWMwNTU4MTQ0NmMxMGU4
M2UzMDllNi4uMzNiZWIwOWU2ZDVlMDQ3MTZmZDNiOGRjNmFiNTBjOGU3ODYyYTVmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3IuaApAQCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CiAKIHN0cnVjdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbW1hbmRF
bmNvZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYg
KCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSkgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDhlYTRkYjU0YWMyMjhhYjg3YzNiOThmNDVkYjM4NzFlZmEwZTkyNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxh
dGlvbk1lc3NhZ2UuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdHJ1Y3QgQ29tcGlsYXRpb25N
ZXNzYWdlIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRp
b25NZXNzYWdlVHlwZSB0eXBlOworICAgIHVpbnQ2NF90IGxpbmVOdW07CisgICAgdWludDY0X3Qg
bGluZVBvczsKKyAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDY0X3QgbGVuZ3RoOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVzc2FnZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8IGxpbmVOdW07CisgICAgICAgIGVuY29kZXIg
PDwgbGluZVBvczsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29kZXIg
PDwgbGVuZ3RoOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPENvbXBpbGF0aW9uTWVzc2FnZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBtZXNzYWdlOworICAgICAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsK
KyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBsaW5lTnVtOworICAgICAgICBkZWNvZGVy
ID4+IGxpbmVOdW07CisgICAgICAgIGlmICghbGluZU51bSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGluZVBvczsK
KyAgICAgICAgZGVjb2RlciA+PiBsaW5lUG9zOworICAgICAgICBpZiAoIWxpbmVQb3MpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICgh
b2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBsZW5ndGg7CisgICAgICAgIGRlY29kZXIgPj4gbGVuZ3RoOwor
ICAgICAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCptZXNzYWdlKSwgV1RGTW92ZSgqdHlwZSksIFdU
Rk1vdmUoKmxpbmVOdW0pLCBXVEZNb3ZlKCpsaW5lUG9zKSwgV1RGTW92ZSgqb2Zmc2V0KSwgV1RG
TW92ZSgqbGVuZ3RoKSB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc0Rlc2NyaXB0b3IuaAppbmRleCA5NTdlNmU0NjMzYjc4NjVjYTA3MTYwNDdlYjdj
OTExOTg2ZTZiYTI4Li43YmIzZTMxOGViZWMzM2VjOGY3OGE4M2YxNmQ3NTVjM2QyMTQxY2Q5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1
dGVQYXNzRGVzY3JpcHRvci5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCiBzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERl
c2NyaXB0b3JCYXNlIHsKICAgICBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyB0aW1lc3RhbXBX
cml0ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxj
b25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB0
aW1lc3RhbXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJh
c2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2Ny
aXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGVzPiB0aW1lc3RhbXBXcml0ZXM7CisgICAgICAgIGRlY29kZXIgPj4g
dGltZXN0YW1wV3JpdGVzOworICAgICAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpv
YmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cFdyaXRlcy5oCmluZGV4IDFhMDZmOGYwMjUzY2YyNmZmZmYwY2RiMjQ1ZGMyMDZkNDg2MzM4OTUu
LjRmMjJkOWFhYjFkYjYyOGJmMzEzNjIyYzg0OThjNmE4NGFjMjdkM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRl
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlcy5oCkBAIC0zNyw2ICszNywzMyBAQCBzdHJ1Y3QgQ29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGlt
ZXN0YW1wTG9jYXRpb24gbG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBxdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVyeUluZGV4OworICAgICAgICBl
bmNvZGVyIDw8IGxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVu
dGlmaWVyPiBxdWVyeVNldDsKKyAgICAgICAgZGVjb2RlciA+PiBxdWVyeVNldDsKKyAgICAgICAg
aWYgKCFxdWVyeVNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBxdWVyeUluZGV4OworICAgICAg
ICBkZWNvZGVyID4+IHF1ZXJ5SW5kZXg7CisgICAgICAgIGlmICghcXVlcnlJbmRleCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247CisgICAgICAg
IGRlY29kZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcXVl
cnlTZXQpLCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0gfTsKKyAg
ICB9CiB9OwogCiB1c2luZyBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IGM5
MzMyNmE5ZTkzNzVkYjNiNTA4MDk5NjE2Y2MxMzY5MDZjMjkzM2IuLmNkZDY1ZDA5NWY2OGU1ZWNi
ZWI5ODdkM2FiMzNiMjhhMmNiNjQ2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaApAQCAt
MzIsNiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiAg
ICAgUHJvZ3JhbW1hYmxlU3RhZ2UgY29tcHV0ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UmPigqdGhp
cyk7CisgICAgICAgIGVuY29kZXIgPDwgY29tcHV0ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBwaXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIXBpcGVs
aW5lRGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IGNvbXB1dGU7CisgICAgICAg
IGRlY29kZXIgPj4gY29tcHV0ZTsKKyAgICAgICAgaWYgKCFjb21wdXRlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnBpcGVs
aW5lRGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb21wdXRlKSB9IH07CisgICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCmlu
ZGV4IDAyMTg4MjdiMzAxYWM2ZDM4YzZjNzI4ZDc4Y2UxOWE5YzI5OTVhYjQuLjU5NTQ1ZDYwNDY5
YWJlZTI1MzAyZjdjOTM0N2I4NDAyNTI3Y2NiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQu
aApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQ
VTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNvbnZlcnRD
b21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1
YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29k
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOCBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgY29uc3QgUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6
V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6
RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKaW5kZXggMmUyMTQ3NzNhNjVkYjRmNmM4
YWQyODIxYWM2MzZhMDBhNWJmZjY4MS4uYTU5N2RmMDk2MTM2ZGIzNDI4YzJjNjdkNTJlYzk2MWZm
YmNmNjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURl
cHRoU3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VURlcHRoU3RlbmNpbFN0YXRlLmgKQEAgLTQ4LDYgKzQ4LDc1IEBAIHN0cnVjdCBEZXB0aFN0ZW5j
aWxTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OkRlcHRoQmlhcyBkZXB0aEJpYXM7CiAgICAgZmxv
YXQgZGVwdGhCaWFzU2xvcGVTY2FsZTsKICAgICBmbG9hdCBkZXB0aEJpYXNDbGFtcDsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8
PCBkZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aENvbXBhcmU7Cisg
ICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbEZyb250OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5j
aWxCYWNrOworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkTWFzazsKKyAgICAgICAgZW5j
b2RlciA8PCBzdGVuY2lsV3JpdGVNYXNrOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoQmlhczsK
KyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAgICBlbmNvZGVy
IDw8IGRlcHRoQmlhc0NsYW1wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlm
ICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IGRlcHRoV3JpdGVFbmFibGVkOworICAgICAgICBkZWNvZGVyID4+
IGRlcHRoV3JpdGVFbmFibGVkOworICAgICAgICBpZiAoIWRlcHRoV3JpdGVFbmFibGVkKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24+IGRlcHRoQ29tcGFyZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBkZXB0aENvbXBhcmU7CisgICAgICAgIGlmICghZGVwdGhDb21wYXJlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0ZW5jaWxG
YWNlU3RhdGU+IHN0ZW5jaWxGcm9udDsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsRnJvbnQ7
CisgICAgICAgIGlmICghc3RlbmNpbEZyb250KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0ZW5jaWxGYWNlU3RhdGU+IHN0ZW5jaWxC
YWNrOworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxCYWNrOworICAgICAgICBpZiAoIXN0ZW5j
aWxCYWNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZT4+IHN0ZW5j
aWxSZWFkTWFzazsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE1hc2s7CisgICAgICAg
IGlmICghc3RlbmNpbFJlYWRNYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5j
aWxWYWx1ZT4+IHN0ZW5jaWxXcml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFdy
aXRlTWFzazsKKyAgICAgICAgaWYgKCFzdGVuY2lsV3JpdGVNYXNrKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpE
ZXB0aEJpYXM+IGRlcHRoQmlhczsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aEJpYXM7CisgICAg
ICAgIGlmICghZGVwdGhCaWFzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAg
ICBkZWNvZGVyID4+IGRlcHRoQmlhc1Nsb3BlU2NhbGU7CisgICAgICAgIGlmICghZGVwdGhCaWFz
U2xvcGVTY2FsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4gZGVwdGhCaWFzQ2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4g
ZGVwdGhCaWFzQ2xhbXA7CisgICAgICAgIGlmICghZGVwdGhCaWFzQ2xhbXApCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZm9y
bWF0KSwgV1RGTW92ZSgqZGVwdGhXcml0ZUVuYWJsZWQpLCBXVEZNb3ZlKCpkZXB0aENvbXBhcmUp
LCBXVEZNb3ZlKCpzdGVuY2lsRnJvbnQpLCBXVEZNb3ZlKCpzdGVuY2lsQmFjayksIFdURk1vdmUo
KnN0ZW5jaWxSZWFkTWFzayksIFdURk1vdmUoKnN0ZW5jaWxXcml0ZU1hc2spLCBXVEZNb3ZlKCpk
ZXB0aEJpYXMpLCBXVEZNb3ZlKCpkZXB0aEJpYXNTbG9wZVNjYWxlKSwgV1RGTW92ZSgqZGVwdGhC
aWFzQ2xhbXApIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURl
c2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNj
cmlwdG9yLmgKaW5kZXggODZhNGQ2OGZlZjcxNzNlNTVkNTYxM2JkNGE0Yjk1NmUwMzBmZTIyYi4u
NmEyNTIzNmRjODljNjY5ODkwNDc3ZWRkZDFkMjMzYTRiMmI0MjRjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCkBAIC0z
Nyw2ICszNywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IERldmljZURl
c2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxQQUw6
OldlYkdQVTo6RmVhdHVyZU5hbWU+IHJlcXVpcmVkRmVhdHVyZXM7CiAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciByZXF1aXJlZExpbWl0cy4KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMp
OworICAgICAgICBlbmNvZGVyIDw8IHJlcXVpcmVkRmVhdHVyZXM7CisgICAgfQorCisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RGV2aWNlRGVzY3JpcHRv
cj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFs
PE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVj
b2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlw
dG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPj4gcmVxdWlyZWRGZWF0
dXJlczsKKyAgICAgICAgZGVjb2RlciA+PiByZXF1aXJlZEZlYXR1cmVzOworICAgICAgICBpZiAo
IXJlcXVpcmVkRmVhdHVyZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3Zl
KCpyZXF1aXJlZEZlYXR1cmVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFcnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzJlZDJiZGViMjQ3YmMyYTk3NzI4OTlmN2JjMGE1OThkNjY0NTQ4ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldl
YkdQVU91dE9mTWVtb3J5RXJyb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVWYWxpZGF0aW9uRXJyb3Iu
aCIKKyNpbmNsdWRlIDx2YXJpYW50PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCit1
c2luZyBFcnJvciA9IHN0ZDo6dmFyaWFudDxPdXRPZk1lbW9yeUVycm9yLCBWYWxpZGF0aW9uRXJy
b3I+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAppbmRleCA0NzNjNGUxOThmNTM1NTI5MzZkZTgy
Yzk4MGY2ZGQwOWM0MWNiMzFlLi4xOTM4MzQyMDk0MmI4ZjA0ZjY0ZGI2NmY4YWI2NWZhYzVmNTdi
ODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50
M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaApA
QCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IEV4dGVudDNERGljdCB7CiAgICAgUEFMOjpXZWJHUFU6
OkludGVnZXJDb29yZGluYXRlIHdpZHRoOwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZSBoZWlnaHQ7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGRlcHRoT3JB
cnJheUxheWVyczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHdpZHRoOwor
ICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aE9yQXJy
YXlMYXllcnM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8RXh0ZW50M0REaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB3
aWR0aDsKKyAgICAgICAgZGVjb2RlciA+PiB3aWR0aDsKKyAgICAgICAgaWYgKCF3aWR0aCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGhlaWdodDsKKyAgICAgICAgZGVjb2RlciA+
PiBoZWlnaHQ7CisgICAgICAgIGlmICghaGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29v
cmRpbmF0ZT4gZGVwdGhPckFycmF5TGF5ZXJzOworICAgICAgICBkZWNvZGVyID4+IGRlcHRoT3JB
cnJheUxheWVyczsKKyAgICAgICAgaWYgKCFkZXB0aE9yQXJyYXlMYXllcnMpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqd2lk
dGgpLCBXVEZNb3ZlKCpoZWlnaHQpLCBXVEZNb3ZlKCpkZXB0aE9yQXJyYXlMYXllcnMpIH0gfTsK
KyAgICB9CiB9OwogCiB1c2luZyBFeHRlbnQzRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8UEFMOjpX
ZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgRXh0ZW50M0REaWN0PjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJl
QmluZGluZ0xheW91dC5oCmluZGV4IDUwZGFiZmEyNTE0NDQzYjMxZDU5N2RkYjZjMTJjYzU5MDYx
YjNkOGUuLjJkNWMyZmZkZGE4NGE2YTQ2MmE4ZDdjZDVkZDhhN2RhYzY3MmY3MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5k
aW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVy
bmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMjgsNiArMjgsMTQgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0IHsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsgfSB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3Iu
aAppbmRleCA2ZTgzMDFlM2UxZGUyOTUwYmUzMjA5NjMxNmFkZDY1YjZiNDIxMWYxLi45M2M3NDUx
MmU0MmU4NGZiNWYyMDZjNjcxYzY4MzY3ZWU0M2RkY2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yLmgKQEAgLTMyLDYgKzMyLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0
cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JC
YXNlIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9i
amVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yU3Bh
Y2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UHJl
ZGVmaW5lZENvbG9yU3BhY2U+IGNvbG9yU3BhY2U7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3JT
cGFjZTsKKyAgICAgICAgaWYgKCFjb2xvclNwYWNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JC
YXNlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUZyYWdtZW50U3RhdGUuaAppbmRleCBkZDRjYWIwODFkNWJiY2RiOTVhMjM4ZDQxYzJlYTUz
ZjhhNGMxM2U5Li45Zjk2ZWUxNmRjYjZjYTQ3YWE4MmNjMjg0NjY5M2U5NjZlMWNlZjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmgK
QEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBG
cmFnbWVudFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBWZWN0b3I8Q29s
b3JUYXJnZXRTdGF0ZT4gdGFyZ2V0czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGNvbnN0IFByb2dyYW1tYWJsZVN0YWdlJj4oKnRoaXMpOworICAgICAg
ICBlbmNvZGVyIDw8IHRhcmdldHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RnJhZ21lbnRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBw
cm9ncmFtbWFibGVTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBwcm9ncmFtbWFibGVTdGFnZTsK
KyAgICAgICAgaWYgKCFwcm9ncmFtbWFibGVTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29sb3JUYXJnZXRTdGF0
ZT4+IHRhcmdldHM7CisgICAgICAgIGRlY29kZXIgPj4gdGFyZ2V0czsKKyAgICAgICAgaWYgKCF0
YXJnZXRzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKnByb2dyYW1tYWJsZVN0YWdlKSwgV1RGTW92ZSgqdGFyZ2V0cykgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKaW5kZXgg
MDM1NGZjNTY2MTg2MDIwN2VhYzQ1NTRjMmJjNmQ2ZGI5MGQyNDA4My4uMTE4NjYwZTc3ZDY5NTY1
OGI4NzIyYjNlNDdlMmZhMmZmNWNlZTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaApAQCAtMzMsNiArMzMsMjcgQEAgbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUJ1ZmZlciA6IHB1Ymxp
YyBJbWFnZURhdGFMYXlvdXQgewogICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VEYXRh
TGF5b3V0Jj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlcjsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJbWFnZUNvcHlC
dWZmZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxJbWFnZURhdGFMYXlvdXQ+IGltYWdlRGF0YUxheW91dDsKKyAgICAgICAgZGVjb2RlciA+
PiBpbWFnZURhdGFMYXlvdXQ7CisgICAgICAgIGlmICghaW1hZ2VEYXRhTGF5b3V0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQ
VUlkZW50aWZpZXI+IGJ1ZmZlcjsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXI7CisgICAgICAg
IGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmltYWdlRGF0YUxheW91dCksIFdURk1vdmUoKmJ1ZmZlcikg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVy
bmFsSW1hZ2UuaAppbmRleCAwNzExMGRiZDM4MGRjNjU3ZDE4MzdhNDQ2ZGM3ZTBlZDQwNmMwZGNl
Li4xZTU1MjhiOWM1NGNjMWQ5N2RlZmZkYzE5MzJmMmVhMTEwOWE5Y2NiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5h
bEltYWdlLmgKQEAgLTMyLDggKzMyLDIzIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewog
CiBzdHJ1Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSB7Ci0gICAgLy8gc3RkOjp2YXJpYW50PFJl
ZlB0cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+IHNvdXJjZTsKKyAg
ICAvLyBGSVhNRTogSGFuZGxlIHRoZSBzb3VyY2UuCiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4y
RD4gb3JpZ2luOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3JpZ2luOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEltYWdlQ29weUV4dGVybmFsSW1hZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPE9yaWdpbjJEPj4gb3JpZ2luOwor
ICAgICAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
b3JpZ2luKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZS5oCmluZGV4IGJkNWM3MDRiMDRjZjQyNWIyMzI3MWJmMzAwZjcwNzQ3ZDVkOTI3ODguLjhh
MjMwNmE4NDQzMWZjZDU4MDExZjVlYzg4ZmE3YWEwYzQ4OTk3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaApAQCAtMzks
NiArMzksMzkgQEAgc3RydWN0IEltYWdlQ29weVRleHR1cmUgewogICAgIFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZSBtaXBMZXZlbDsKICAgICBzdGQ6Om9wdGlvbmFsPE9yaWdpbjNEPiBv
cmlnaW47CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QgYXNwZWN0OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBt
aXBMZXZlbDsKKyAgICAgICAgZW5jb2RlciA8PCBvcmlnaW47CisgICAgICAgIGVuY29kZXIgPDwg
YXNwZWN0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEltYWdlQ29weVRleHR1cmU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiB0ZXh0dXJlOworICAg
ICAgICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAgICAgIGlmICghdGV4dHVyZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IG1pcExldmVsOworICAgICAgICBkZWNvZGVyID4+IG1p
cExldmVsOworICAgICAgICBpZiAoIW1pcExldmVsKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8T3JpZ2luM0Q+
PiBvcmlnaW47CisgICAgICAgIGRlY29kZXIgPj4gb3JpZ2luOworICAgICAgICBpZiAoIW9yaWdp
bikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdD4gYXNwZWN0OworICAgICAgICBkZWNvZGVy
ID4+IGFzcGVjdDsKKyAgICAgICAgaWYgKCFhc3BlY3QpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdGV4dHVyZSksIFdURk1v
dmUoKm1pcExldmVsKSwgV1RGTW92ZSgqb3JpZ2luKSwgV1RGTW92ZSgqYXNwZWN0KSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5oCmluZGV4IDU1NWFmMGUxYWJlZjYzNTI0YTc3YTA1ODc0MGNlZjE0NmJhZTIwYmQuLjg0OWJj
NGU4NjFjMzM2M2E2OTA5M2VjZmY5MWIwZjVkNTIwZTQ2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
aApAQCAtMzMsNiArMzMsMzMgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBJ
bWFnZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGljIEltYWdlQ29weVRleHR1cmUgewogICAgIFBB
TDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlOwogICAgIGJvb2wgcHJl
bXVsdGlwbGllZEFscGhhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8Y29uc3QgSW1hZ2VDb3B5VGV4dHVyZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBjb2xvclNwYWNlOworICAgICAgICBlbmNvZGVyIDw8IHByZW11bHRpcGxpZWRBbHBoYTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5VGV4dHVyZT4gaW1hZ2VDb3B5VGV4dHVy
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBpbWFnZUNvcHlUZXh0dXJlOworICAgICAgICBpZiAoIWlt
YWdlQ29weVRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlPiBjb2xv
clNwYWNlOworICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7CisgICAgICAgIGlmICghY29s
b3JTcGFjZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAgICAgIGRlY29kZXIgPj4g
cHJlbXVsdGlwbGllZEFscGhhOworICAgICAgICBpZiAoIXByZW11bHRpcGxpZWRBbHBoYSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCppbWFnZUNvcHlUZXh0dXJlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSksIFdURk1vdmUoKnBy
ZW11bHRpcGxpZWRBbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
SW1hZ2VEYXRhTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VEYXRhTGF5b3V0LmgKaW5kZXggMWU1ZGQwYTQ2NzE2ZDg4ZDBjZDdhMmE2Y2FhNzA5NzNkZmJm
Yjk3NC4uY2U0Y2UzOTE0NzMwM2ZlNzBlMjdmNjlhYWJlMGNlNWMxYTE1N2IzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaApA
QCAtMzQsNiArMzQsMzMgQEAgc3RydWN0IEltYWdlRGF0YUxheW91dCB7CiAgICAgUEFMOjpXZWJH
UFU6OlNpemU2NCBvZmZzZXQ7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMy
PiBieXRlc1BlclJvdzsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHJv
d3NQZXJJbWFnZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9mZnNldDsK
KyAgICAgICAgZW5jb2RlciA8PCBieXRlc1BlclJvdzsKKyAgICAgICAgZW5jb2RlciA8PCByb3dz
UGVySW1hZ2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8SW1hZ2VEYXRhTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0Owor
ICAgICAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gYnl0ZXNQZXJSb3c7CisgICAgICAgIGRlY29k
ZXIgPj4gYnl0ZXNQZXJSb3c7CisgICAgICAgIGlmICghYnl0ZXNQZXJSb3cpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gcm93c1BlckltYWdlOworICAgICAgICBkZWNvZGVy
ID4+IHJvd3NQZXJJbWFnZTsKKyAgICAgICAgaWYgKCFyb3dzUGVySW1hZ2UpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2Zm
c2V0KSwgV1RGTW92ZSgqYnl0ZXNQZXJSb3cpLCBXVEZNb3ZlKCpyb3dzUGVySW1hZ2UpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKaW5kZXgg
YmQxMWJlMmVjMWVjMWIyZTQ3OTFjOWVkODMyYzlhYzAzMDNiMTc4YS4uOGRlNWQ1OGQ5ODMxOWY4
ZDkxODg4ODZjNDQxMDA5NjAxYzNmOTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oCkBAIC0zMyw2ICszMywzMyBAQCBz
dHJ1Y3QgTXVsdGlzYW1wbGVTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBjb3VudDsK
ICAgICBQQUw6OldlYkdQVTo6U2FtcGxlTWFzayBtYXNrOwogICAgIGJvb2wgYWxwaGFUb0NvdmVy
YWdlRW5hYmxlZDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvdW50Owor
ICAgICAgICBlbmNvZGVyIDw8IG1hc2s7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGFUb0NvdmVy
YWdlRW5hYmxlZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gY291bnQ7
CisgICAgICAgIGRlY29kZXIgPj4gY291bnQ7CisgICAgICAgIGlmICghY291bnQpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNhbXBsZU1hc2s+IG1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gbWFzazsKKyAgICAg
ICAgaWYgKCFtYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAgICAgIGRl
Y29kZXIgPj4gYWxwaGFUb0NvdmVyYWdlRW5hYmxlZDsKKyAgICAgICAgaWYgKCFhbHBoYVRvQ292
ZXJhZ2VFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqbWFzayksIFdURk1vdmUoKmFs
cGhhVG9Db3ZlcmFnZUVuYWJsZWQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAppbmRleCAyMzg3OTAwYTQ2MTRkZjhmMGNjYmRl
Nzg2OTc3YjkyMDdhOTUxZTY2Li40ZmNiOWY1NTg3NzZmNDNjMTY4YmU0MGUyNzIxNmI0ZTQ5MzBh
MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIAogc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBTdHJpbmcg
bGFiZWw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBsYWJlbDsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPYmpl
Y3REZXNjcmlwdG9yQmFzZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbGFiZWw7CisgICAgICAgIGRlY29kZXIgPj4gbGFiZWw7
CisgICAgICAgIGlmICghbGFiZWwpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbGFiZWwpIH0gfTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVT3JpZ2luMkQuaAppbmRleCBmZGM2NjcxMDMwN2ViNDRkZDkxYmYxZTg3YzQ2NzRm
MTg0YzA2MDgyLi5kZjFmZmZkNTc4NDM5NTIzYmRjNzIxMTQzMzI3YjBjNmZlM2E3NzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaApAQCAtMzQsNiAr
MzQsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBPcmlnaW4yRERpY3Qg
ewogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4OwogICAgIFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZSB5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgeDsKKyAgICAgICAgZW5jb2RlciA8PCB5OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9yaWdpbjJERGljdD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZT4geDsKKyAgICAgICAgZGVjb2RlciA+PiB4OworICAgICAgICBpZiAo
IXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB5OworICAgICAgICBkZWNvZGVy
ID4+IHk7CisgICAgICAgIGlmICgheSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgqeSkgfSB9OworICAg
IH0KIH07CiAKIHVzaW5nIE9yaWdpbjJEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxQQUw6OldlYkdQ
VTo6SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4yRERpY3Q+OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaAppbmRleCAzZTQ3NDI1MzVjODk0NjQ4MjM5MGUx
ZThmNDRjZmIwZDBhNmFmYzhiLi5jZjc0NWE0MjA3NGFjYjIwZmU3NTE0NmMwZTk0NTMwZTY3NGM4
ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2lu
M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaApA
QCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IE9yaWdpbjNERGljdCB7CiAgICAgUEFMOjpXZWJHUFU6
OkludGVnZXJDb29yZGluYXRlIHg7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRl
IHk7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHo7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCB4OworICAgICAgICBlbmNvZGVyIDw8IHk7CisgICAgICAg
IGVuY29kZXIgPDwgejsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxPcmlnaW4zRERpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5h
dGU+IHg7CisgICAgICAgIGRlY29kZXIgPj4geDsKKyAgICAgICAgaWYgKCF4KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4geTsKKyAgICAgICAgZGVjb2RlciA+PiB5OworICAgICAg
ICBpZiAoIXkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB6OworICAgICAgICBk
ZWNvZGVyID4+IHo7CisgICAgICAgIGlmICgheikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgqeSksIFdU
Rk1vdmUoKnopIH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBPcmlnaW4zRCA9IHN0ZDo6dmFyaWFu
dDxWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luM0REaWN0PjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9y
eUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlF
cnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjNjkzNTc1NzFhZjE3ZWY5ZTdmNzY0MjM4NzdmZjM0ODRhYTY2
NWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T3V0T2ZNZW1vcnlFcnJvci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0IE91dE9mTWVtb3J5
RXJyb3IgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE91dE9mTWVtb3J5RXJyb3I+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgeyB9IH07CisgICAgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCmluZGV4IGUy
NDkyYWUwOThjZWRmODhjZWJjZGU5YTQwMzg4MTA4YmRhNzY5YjMuLjVjNGI3MDc5MDA1MWNmYzFm
N2M1NTk1MTY2OGI5ZjQ1YjA1NWUyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaApAQCAtMzIsNiAr
MzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IFBpcGVsaW5lRGVz
Y3JpcHRvckJhc2UgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdlYkdQVUlk
ZW50aWZpZXIgbGF5b3V0OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVu
Y29kZXIgPDwgbGF5b3V0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFBpcGVsaW5lRGVzY3JpcHRvckJhc2U+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9y
QmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BV
SWRlbnRpZmllcj4gbGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IGxheW91dDsKKyAgICAgICAg
aWYgKCFsYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpsYXlv
dXQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvci5oCmluZGV4IDY0MTczMGViYTY5OWQ3YmUyZTkwZDFjMDRkYzkyZTEy
N2RlMTI3YmYuLjgwYTIwMTdmYmNmOWQ4NGVlMzQwMjQ5N2E2Y2JiNDc5ODZmMDU3N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CiAKIHN0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiBiaW5kR3Jv
dXBMYXlvdXRzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIg
PDwgYmluZEdyb3VwTGF5b3V0czsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNj
cmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+PiBiaW5kR3JvdXBMYXlvdXRzOworICAgICAgICBkZWNv
ZGVyID4+IGJpbmRHcm91cExheW91dHM7CisgICAgICAgIGlmICghYmluZEdyb3VwTGF5b3V0cykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBX
VEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmJpbmRHcm91cExheW91dHMp
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAppbmRl
eCBiODY4NzViYjUxZWY0YzkzNzJkOGYyNWQyYWIzMzU5MjYxNWI3NGIzLi5kMTgyMzMyMjNkOTcw
YThmMDk5MDYyNTg3ODExNWFhNDc1NGI0ODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaApAQCAtNDIsNiArNDIsNDUgQEAgc3Ry
dWN0IFByaW1pdGl2ZVN0YXRlIHsKIAogICAgIC8vIFJlcXVpcmVzICJkZXB0aC1jbGlwLWNvbnRy
b2wiIGZlYXR1cmUuCiAgICAgYm9vbCB1bmNsaXBwZWREZXB0aDsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgewor
ICAgICAgICBlbmNvZGVyIDw8IHRvcG9sb2d5OworICAgICAgICBlbmNvZGVyIDw8IHN0cmlwSW5k
ZXhGb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgZnJvbnRGYWNlOworICAgICAgICBlbmNvZGVy
IDw8IGN1bGxNb2RlOworICAgICAgICBlbmNvZGVyIDw8IHVuY2xpcHBlZERlcHRoOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByaW1p
dGl2ZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB0b3BvbG9neTsKKyAgICAg
ICAgZGVjb2RlciA+PiB0b3BvbG9neTsKKyAgICAgICAgaWYgKCF0b3BvbG9neSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4+IHN0cmlwSW5kZXhGb3JtYXQ7CisgICAg
ICAgIGRlY29kZXIgPj4gc3RyaXBJbmRleEZvcm1hdDsKKyAgICAgICAgaWYgKCFzdHJpcEluZGV4
Rm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGcm9udEZhY2U+IGZyb250RmFjZTsKKyAgICAgICAgZGVj
b2RlciA+PiBmcm9udEZhY2U7CisgICAgICAgIGlmICghZnJvbnRGYWNlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpDdWxsTW9kZT4gY3VsbE1vZGU7CisgICAgICAgIGRlY29kZXIgPj4gY3VsbE1vZGU7CisgICAg
ICAgIGlmICghY3VsbE1vZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAgIGRlY29k
ZXIgPj4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAgIGlmICghdW5jbGlwcGVkRGVwdGgpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqdG9wb2xvZ3kpLCBXVEZNb3ZlKCpzdHJpcEluZGV4Rm9ybWF0KSwgV1RGTW92ZSgqZnJvbnRG
YWNlKSwgV1RGTW92ZSgqY3VsbE1vZGUpLCBXVEZNb3ZlKCp1bmNsaXBwZWREZXB0aCkgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCmluZGV4
IGM1YjQxNjgwNmE5Y2ZjY2ZkYTJmMGYwYmQ2MjM3NjIzMjY0ODIyNzAuLmUxZjBhZTBkNjlmMjli
YjlmZjc4MmVlZDYyZDM2ZDM4NTdjMTlmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCkBAIC0zOCw2ICszOCwzMyBA
QCBzdHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFdlYkdQVUlkZW50aWZpZXIgbW9kdWxl
OwogICAgIFN0cmluZyBlbnRyeVBvaW50OwogICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgZW5jb2RlciA8PCBtb2R1bGU7CisgICAgICAgIGVuY29kZXIgPDwgZW50cnlQb2ludDsK
KyAgICAgICAgZW5jb2RlciA8PCBjb25zdGFudHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJ
ZGVudGlmaWVyPiBtb2R1bGU7CisgICAgICAgIGRlY29kZXIgPj4gbW9kdWxlOworICAgICAgICBp
ZiAoIW1vZHVsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGVudHJ5UG9pbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZW50
cnlQb2ludDsKKyAgICAgICAgaWYgKCFlbnRyeVBvaW50KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBQaXBlbGluZUNvbnN0YW50VmFsdWU+Pj4gY29uc3RhbnRzOworICAgICAgICBkZWNv
ZGVyID4+IGNvbnN0YW50czsKKyAgICAgICAgaWYgKCFjb25zdGFudHMpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbW9kdWxl
KSwgV1RGTW92ZSgqZW50cnlQb2ludCksIFdURk1vdmUoKmNvbnN0YW50cykgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKaW5kZXggY2Q0
NWI2NjEwYTdjMDg3NTVjYmVhNTQyYWViMTBiNjAyODg1NzMyMi4uYmUxMTJkOTI1NjY1ZGJhNGEw
MjNhZjQ3ZWVkOWY4MjRhYjkzYjljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaApAQCAtMzcsNiArMzcsMzkgQEAg
c3RydWN0IFF1ZXJ5U2V0RGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7
CiAgICAgUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZSB0eXBlOwogICAgIFBBTDo6V2ViR1BVOjpTaXpl
MzIgY291bnQ7CiAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU+
IHBpcGVsaW5lU3RhdGlzdGljczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAg
ICBlbmNvZGVyIDw8IHR5cGU7CisgICAgICAgIGVuY29kZXIgPDwgY291bnQ7CisgICAgICAgIGVu
Y29kZXIgPDwgcGlwZWxpbmVTdGF0aXN0aWNzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFF1ZXJ5U2V0RGVzY3JpcHRvcj4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERl
c2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBv
YmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6UXVlcnlUeXBlPiB0eXBlOworICAgICAgICBkZWNvZGVyID4+IHR5cGU7
CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBjb3VudDsKKyAgICAg
ICAgZGVjb2RlciA+PiBjb3VudDsKKyAgICAgICAgaWYgKCFjb3VudCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpX
ZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZT4+IHBpcGVsaW5lU3RhdGlzdGljczsKKyAgICAg
ICAgZGVjb2RlciA+PiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAgIGlmICghcGlwZWxpbmVT
dGF0aXN0aWNzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqdHlwZSks
IFdURk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqcGlwZWxpbmVTdGF0aXN0aWNzKSB9IH07CisgICAg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5o
CmluZGV4IDA4MWJhNjRiMGUxZDkyYTRiOTA3MDdmZTc0MmFlNzEyYzVkNDY0YjMuLmMwOTYyODA3
NjQxYmY5Y2E0MDFkODEyYmEyMDAzMWIyZWE5MDBhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaApA
QCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBS
ZW5kZXJCdW5kbGVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVz
Y3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9i
amVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKaW5k
ZXggNTQxNzkxOWNiZDdhYjI1YmU4YmQ4ZWMxOGRjMDNjMGI1ZDU3MTljYy4uZTI5Y2Q1NGI5NWNh
NDBhYzBhZDhiZTU5ZTc0ODMyZDJkZThkYjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmgKQEAgLTMyLDYgKzMyLDMzIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBz
dHJ1Y3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgUmVuZGVyUGFzc0xh
eW91dCB7CiAgICAgYm9vbCBkZXB0aFJlYWRPbmx5OwogICAgIGJvb2wgc3RlbmNpbFJlYWRPbmx5
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyUGFzc0xheW91dCY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFJlYWRP
bmx5OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkT25seTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVF
bmNvZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NMYXlvdXQ+IHJlbmRlclBhc3NMYXlvdXQ7CisgICAg
ICAgIGRlY29kZXIgPj4gcmVuZGVyUGFzc0xheW91dDsKKyAgICAgICAgaWYgKCFyZW5kZXJQYXNz
TGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhS
ZWFkT25seTsKKyAgICAgICAgaWYgKCFkZXB0aFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN0ZW5jaWxSZWFk
T25seTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE9ubHk7CisgICAgICAgIGlmICgh
c3RlbmNpbFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKnJlbmRlclBhc3NMYXlvdXQpLCBXVEZNb3ZlKCpkZXB0
aFJlYWRPbmx5KSwgV1RGTW92ZSgqc3RlbmNpbFJlYWRPbmx5KSB9IH07CisgICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCmlu
ZGV4IGUwZjNjODkzYjFjYmE3MTMwOGY3OGM4Yzc2MjUyMThkNGIzMjcwMTMuLmIwZDg5MjdlZjJi
YThhMzBiOWVhNmI2ZDVkZjQ3ZTE0ODY0ZWM3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQu
aApAQCAtNDEsNiArNDEsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQgewog
CiAgICAgc3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxkb3VibGU+LCBD
b2xvckRpY3Q+IGxvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBzdG9yZU9wOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdmlldzsKKyAgICAgICAgZW5jb2Rl
ciA8PCByZXNvbHZlVGFyZ2V0OworICAgICAgICBlbmNvZGVyIDw8IGxvYWRWYWx1ZTsKKyAgICAg
ICAgZW5jb2RlciA8PCBzdG9yZU9wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJ
ZGVudGlmaWVyPiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAgIGlmICgh
dmlldykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiByZXNvbHZlVGFyZ2V0OworICAgICAgICBkZWNvZGVy
ID4+IHJlc29sdmVUYXJnZXQ7CisgICAgICAgIGlmICghcmVzb2x2ZVRhcmdldCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZh
cmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIENvbG9yRGljdD4+IGxv
YWRWYWx1ZTsKKyAgICAgICAgZGVjb2RlciA+PiBsb2FkVmFsdWU7CisgICAgICAgIGlmICghbG9h
ZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdG9yZU9wPiBzdG9yZU9wOworICAgICAgICBkZWNvZGVy
ID4+IHN0b3JlT3A7CisgICAgICAgIGlmICghc3RvcmVPcCkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp2aWV3KSwgV1RGTW92
ZSgqcmVzb2x2ZVRhcmdldCksIFdURk1vdmUoKmxvYWRWYWx1ZSksIFdURk1vdmUoKnN0b3JlT3Ap
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0
ZW5jaWxBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAppbmRleCA2OGE0ODRiMDMzZDIxNTIxYmRk
MzYzZmZiYjcwZGEzZjhmMzk4ZGZiLi5lODJlZDZjODFlOGFjYTc4NWM4MDU4YzAzMjQyNmVlNWYw
YzJiYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaApAQCAtNDQs
NiArNDQsNTcgQEAgc3RydWN0IFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50IHsKICAg
ICBzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgUEFMOjpXZWJHUFU6OlN0ZW5jaWxW
YWx1ZT4gc3RlbmNpbExvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBzdGVuY2ls
U3RvcmVPcDsKICAgICBib29sIHN0ZW5jaWxSZWFkT25seTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHZpZXc7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhMb2FkVmFsdWU7
CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdG9yZU9wOworICAgICAgICBlbmNvZGVyIDw8IGRl
cHRoUmVhZE9ubHk7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbExvYWRWYWx1ZTsKKyAgICAg
ICAgZW5jb2RlciA8PCBzdGVuY2lsU3RvcmVPcDsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2ls
UmVhZE9ubHk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlm
aWVyPiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAgIGlmICghdmlldykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+PiBkZXB0aExvYWRWYWx1
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aExvYWRWYWx1ZTsKKyAgICAgICAgaWYgKCFkZXB0
aExvYWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gZGVwdGhTdG9yZU9wOworICAgICAg
ICBkZWNvZGVyID4+IGRlcHRoU3RvcmVPcDsKKyAgICAgICAgaWYgKCFkZXB0aFN0b3JlT3ApCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gZGVwdGhSZWFkT25seTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFJlYWRPbmx5Owor
ICAgICAgICBpZiAoIWRlcHRoUmVhZE9ubHkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpM
b2FkT3AsIFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+PiBzdGVuY2lsTG9hZFZhbHVlOworICAg
ICAgICBkZWNvZGVyID4+IHN0ZW5jaWxMb2FkVmFsdWU7CisgICAgICAgIGlmICghc3RlbmNpbExv
YWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gc3RlbmNpbFN0b3JlT3A7CisgICAgICAg
IGRlY29kZXIgPj4gc3RlbmNpbFN0b3JlT3A7CisgICAgICAgIGlmICghc3RlbmNpbFN0b3JlT3Ap
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gc3RlbmNpbFJlYWRPbmx5OworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxSZWFk
T25seTsKKyAgICAgICAgaWYgKCFzdGVuY2lsUmVhZE9ubHkpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdmlldyksIFdURk1v
dmUoKmRlcHRoTG9hZFZhbHVlKSwgV1RGTW92ZSgqZGVwdGhTdG9yZU9wKSwgV1RGTW92ZSgqZGVw
dGhSZWFkT25seSksIFdURk1vdmUoKnN0ZW5jaWxMb2FkVmFsdWUpLCBXVEZNb3ZlKCpzdGVuY2ls
U3RvcmVPcCksIFdURk1vdmUoKnN0ZW5jaWxSZWFkT25seSkgfSB9OworICAgIH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCmluZGV4IDg3ZTgxMGEy
YjVlNzNmNTdhYjlkOTBmYjNjNzJiZDFlN2FkMjE3YjQuLmJhNGNlZTIxMGNhMDBiZWI5ZThiODc3
ZmY3OTcyNmM0NWZiZDgxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCkBAIC00MCw2ICs0MCw0NSBAQCBz
dHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ug
ewogICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IGRl
cHRoU3RlbmNpbEF0dGFjaG1lbnQ7CiAgICAgV2ViR1BVSWRlbnRpZmllciBvY2NsdXNpb25RdWVy
eVNldDsKICAgICBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVzdGFtcFdyaXRlczsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVj
dERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yQXR0YWNo
bWVudHM7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdGVuY2lsQXR0YWNobWVudDsKKyAgICAg
ICAgZW5jb2RlciA8PCBvY2NsdXNpb25RdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1l
c3RhbXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0Rlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4g
b2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnQ+PiBjb2xvckF0dGFjaG1lbnRzOworICAgICAgICBkZWNvZGVy
ID4+IGNvbG9yQXR0YWNobWVudHM7CisgICAgICAgIGlmICghY29sb3JBdHRhY2htZW50cykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxz
dGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Pj4gZGVwdGhTdGVu
Y2lsQXR0YWNobWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFN0ZW5jaWxBdHRhY2htZW50
OworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmll
cj4gb2NjbHVzaW9uUXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2NjbHVzaW9uUXVlcnlT
ZXQ7CisgICAgICAgIGlmICghb2NjbHVzaW9uUXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1RpbWVzdGFt
cFdyaXRlcz4gdGltZXN0YW1wV3JpdGVzOworICAgICAgICBkZWNvZGVyID4+IHRpbWVzdGFtcFdy
aXRlczsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZXMpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3Jp
cHRvckJhc2UpLCBXVEZNb3ZlKCpjb2xvckF0dGFjaG1lbnRzKSwgV1RGTW92ZSgqZGVwdGhTdGVu
Y2lsQXR0YWNobWVudCksIFdURk1vdmUoKm9jY2x1c2lvblF1ZXJ5U2V0KSwgV1RGTW92ZSgqdGlt
ZXN0YW1wV3JpdGVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0xheW91dC5oCmluZGV4IGExNzJlZTI1Y2VhMTVlZGU3M2M1NGEzN2ZhZjc1Yzc3YzU4MjQ4
ZDEuLjRlZTMxZWUzNmFjYmU5Y2M3ZDRmOGJhMGQ1YjYyZGIzN2E3MTQzOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaApA
QCAtMzcsNiArMzcsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NMYXlvdXQgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4g
Y29sb3JGb3JtYXRzOwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ+IGRlcHRoU3RlbmNpbEZvcm1hdDsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIHNhbXBsZUNv
dW50OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29u
c3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgY29s
b3JGb3JtYXRzOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbEZvcm1hdDsKKyAgICAg
ICAgZW5jb2RlciA8PCBzYW1wbGVDb3VudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVj
dERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4+IGNvbG9yRm9ybWF0czsKKyAgICAgICAg
ZGVjb2RlciA+PiBjb2xvckZvcm1hdHM7CisgICAgICAgIGlmICghY29sb3JGb3JtYXRzKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+PiBkZXB0aFN0ZW5jaWxGb3Jt
YXQ7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhTdGVuY2lsRm9ybWF0OworICAgICAgICBpZiAo
IWRlcHRoU3RlbmNpbEZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBzYW1wbGVDb3VudDsK
KyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3VudDsKKyAgICAgICAgaWYgKCFzYW1wbGVDb3Vu
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmNvbG9yRm9ybWF0cyks
IFdURk1vdmUoKmRlcHRoU3RlbmNpbEZvcm1hdCksIFdURk1vdmUoKnNhbXBsZUNvdW50KSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlcy5oCmluZGV4IDhiMWViYTc0NjVmMTc2NTlmODBjOGExMjFlMmExZWY4ZWNhMTU5
ZDQuLjhiOTI2M2E3YzQ4MGQwODMxZjU0NDk5NmZlZTExYjI3MDRlNGVhZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZXMuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IFJlbmRlclBhc3NUaW1l
c3RhbXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1l
c3RhbXBMb2NhdGlvbiBsb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IHF1ZXJ5U2V0OworICAgICAgICBlbmNvZGVyIDw8IHF1ZXJ5SW5kZXg7CisgICAgICAgIGVu
Y29kZXIgPDwgbG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRp
Zmllcj4gcXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gcXVlcnlTZXQ7CisgICAgICAgIGlm
ICghcXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gcXVlcnlJbmRleDsKKyAgICAgICAg
ZGVjb2RlciA+PiBxdWVyeUluZGV4OworICAgICAgICBpZiAoIXF1ZXJ5SW5kZXgpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247CisgICAgICAgIGRl
Y29kZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcXVlcnlT
ZXQpLCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0gfTsKKyAgICB9
CiB9OwogCiB1c2luZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9yPFJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggOWEyNzFjNzNk
NTM1MTgzYjA4NjE2YzNiNjcyODYyODUzZmQ2ZmM4ZC4uNmMyZWY3MzA5MmFhMjRjYWYzZDU5NDE3
YjRjYjA2MWE5OTJlZjEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtNDEsNiArNDEs
NTEgQEAgc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBlbGluZURl
c2NyaXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPiBkZXB0
aFN0ZW5jaWw7CiAgICAgc3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBtdWx0aXNhbXBs
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEZyYWdtZW50U3RhdGU+IGZyYWdtZW50OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB2ZXJ0ZXg7CisgICAgICAg
IGVuY29kZXIgPDwgcHJpbWl0aXZlOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbDsK
KyAgICAgICAgZW5jb2RlciA8PCBtdWx0aXNhbXBsZTsKKyAgICAgICAgZW5jb2RlciA8PCBmcmFn
bWVudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JCYXNlPiBw
aXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IHBpcGVsaW5lRGVzY3Jp
cHRvckJhc2U7CisgICAgICAgIGlmICghcGlwZWxpbmVEZXNjcmlwdG9yQmFzZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZXJ0ZXhT
dGF0ZT4gdmVydGV4OworICAgICAgICBkZWNvZGVyID4+IHZlcnRleDsKKyAgICAgICAgaWYgKCF2
ZXJ0ZXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQcmltaXRpdmVTdGF0ZT4+IHByaW1pdGl2ZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBwcmltaXRpdmU7CisgICAgICAgIGlmICghcHJpbWl0aXZlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8RGVwdGhTdGVuY2lsU3RhdGU+PiBkZXB0aFN0ZW5jaWw7CisgICAgICAgIGRlY29k
ZXIgPj4gZGVwdGhTdGVuY2lsOworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPE11bHRpc2FtcGxlU3RhdGU+PiBtdWx0aXNhbXBsZTsKKyAgICAgICAgZGVjb2RlciA+
PiBtdWx0aXNhbXBsZTsKKyAgICAgICAgaWYgKCFtdWx0aXNhbXBsZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFs
PEZyYWdtZW50U3RhdGU+PiBmcmFnbWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBmcmFnbWVudDsK
KyAgICAgICAgaWYgKCFmcmFnbWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwaXBlbGluZURlc2NyaXB0b3JCYXNlKSwg
V1RGTW92ZSgqdmVydGV4KSwgV1RGTW92ZSgqcHJpbWl0aXZlKSwgV1RGTW92ZSgqZGVwdGhTdGVu
Y2lsKSwgV1RGTW92ZSgqbXVsdGlzYW1wbGUpLCBXVEZNb3ZlKCpmcmFnbWVudCkgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgK
aW5kZXggYTkxNzhkNjE3NzIzNzM2NzM4ZmYwZDYwZmQzNTBlZjMxZDNmY2VjOS4uMDZiMDMxYzcx
MmVkZTg3ZjU4NTlhM2Q1M2IzYjQ2ZWQ1OTExMjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaApAQCAt
MzMsNiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBSZXF1ZXN0
QWRhcHRlck9wdGlvbnMgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBvd2VyUHJl
ZmVyZW5jZT4gcG93ZXJQcmVmZXJlbmNlOwogICAgIGJvb2wgZm9yY2VGYWxsYmFja0FkYXB0ZXI7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBwb3dlclByZWZlcmVuY2U7Cisg
ICAgICAgIGVuY29kZXIgPDwgZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgfQorCisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEFkYXB0ZXJP
cHRpb25zPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPj4gcG93ZXJQ
cmVmZXJlbmNlOworICAgICAgICBkZWNvZGVyID4+IHBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAg
aWYgKCFwb3dlclByZWZlcmVuY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAg
ICAgIGRlY29kZXIgPj4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgICAgIGlmICghZm9yY2VG
YWxsYmFja0FkYXB0ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcG93ZXJQcmVmZXJlbmNlKSwgV1RGTW92ZSgqZm9yY2VG
YWxsYmFja0FkYXB0ZXIpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U2FtcGxlckJpbmRpbmdMYXlvdXQuaAppbmRleCA5MGVhOTg3YTExODYzZTNjMTE3ZDI2OTVjNTM3
NmU1YzA0NGY0MjRmLi45NTkyMWVhNTg3NDU1M2Q4ZmJmMGNkNWE1M2I0ZDAwNTAwNmUzMmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRp
bmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckJpbmRpbmdMYXlvdXQuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKIAogc3RydWN0IFNhbXBsZXJCaW5kaW5nTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6
U2FtcGxlckJpbmRpbmdUeXBlIHR5cGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFNhbXBsZXJCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5k
aW5nVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAgICBpZiAoIXR5
cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqdHlwZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U2FtcGxlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
YW1wbGVyRGVzY3JpcHRvci5oCmluZGV4IGQ3Yzc0N2E5NDc1NmNjYjQwM2RmM2ZlNTVmMWI1Mzhm
NTcyMTgxMjAuLmI4ZDg1OTQ4NzE0MmJjY2ZhYzUxMTVmOWJmYWQ5ZTM5Y2IwYzUzYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5oCkBAIC00NSw2ICs0NSw4MSBAQCBzdHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3IgOiBwdWJs
aWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIGZsb2F0IGxvZE1heENsYW1wOwogICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4gY29tcGFyZTsKICAgICB1
aW50MTZfdCBtYXhBbmlzb3Ryb3B5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAg
ICAgIGVuY29kZXIgPDwgYWRkcmVzc01vZGVVOworICAgICAgICBlbmNvZGVyIDw8IGFkZHJlc3NN
b2RlVjsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRyZXNzTW9kZVc7CisgICAgICAgIGVuY29kZXIg
PDwgbWFnRmlsdGVyOworICAgICAgICBlbmNvZGVyIDw8IG1pbkZpbHRlcjsKKyAgICAgICAgZW5j
b2RlciA8PCBtaXBtYXBGaWx0ZXI7CisgICAgICAgIGVuY29kZXIgPDwgbG9kTWluQ2xhbXA7Cisg
ICAgICAgIGVuY29kZXIgPDwgbG9kTWF4Q2xhbXA7CisgICAgICAgIGVuY29kZXIgPDwgY29tcGFy
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhBbmlzb3Ryb3B5OworICAgIH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNhbXBsZXJEZXNjcmlwdG9y
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNv
ZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0
b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZT4gYWRkcmVzc01vZGVVOworICAgICAg
ICBkZWNvZGVyID4+IGFkZHJlc3NNb2RlVTsKKyAgICAgICAgaWYgKCFhZGRyZXNzTW9kZVUpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlPiBhZGRyZXNzTW9kZVY7CisgICAgICAgIGRlY29kZXIg
Pj4gYWRkcmVzc01vZGVWOworICAgICAgICBpZiAoIWFkZHJlc3NNb2RlVikKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6QWRkcmVzc01vZGU+IGFkZHJlc3NNb2RlVzsKKyAgICAgICAgZGVjb2RlciA+PiBhZGRyZXNz
TW9kZVc7CisgICAgICAgIGlmICghYWRkcmVzc01vZGVXKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGaWx0ZXJN
b2RlPiBtYWdGaWx0ZXI7CisgICAgICAgIGRlY29kZXIgPj4gbWFnRmlsdGVyOworICAgICAgICBp
ZiAoIW1hZ0ZpbHRlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RmlsdGVyTW9kZT4gbWluRmlsdGVyOworICAg
ICAgICBkZWNvZGVyID4+IG1pbkZpbHRlcjsKKyAgICAgICAgaWYgKCFtaW5GaWx0ZXIpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkZpbHRlck1vZGU+IG1pcG1hcEZpbHRlcjsKKyAgICAgICAgZGVjb2RlciA+PiBt
aXBtYXBGaWx0ZXI7CisgICAgICAgIGlmICghbWlwbWFwRmlsdGVyKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsb2RNaW5D
bGFtcDsKKyAgICAgICAgZGVjb2RlciA+PiBsb2RNaW5DbGFtcDsKKyAgICAgICAgaWYgKCFsb2RN
aW5DbGFtcCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gbG9kTWF4Q2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4gbG9kTWF4
Q2xhbXA7CisgICAgICAgIGlmICghbG9kTWF4Q2xhbXApCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6Q29tcGFyZUZ1bmN0aW9uPj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21w
YXJlOworICAgICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IG1heEFuaXNvdHJvcHk7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWF4QW5pc290cm9weTsKKyAgICAgICAgaWYgKCFtYXhBbmlzb3Ry
b3B5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVV
KSwgV1RGTW92ZSgqYWRkcmVzc01vZGVWKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVXKSwgV1RGTW92
ZSgqbWFnRmlsdGVyKSwgV1RGTW92ZSgqbWluRmlsdGVyKSwgV1RGTW92ZSgqbWlwbWFwRmlsdGVy
KSwgV1RGTW92ZSgqbG9kTWluQ2xhbXApLCBXVEZNb3ZlKCpsb2RNYXhDbGFtcCksIFdURk1vdmUo
KmNvbXBhcmUpLCBXVEZNb3ZlKCptYXhBbmlzb3Ryb3B5KSB9IH07CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCmluZGV4IDdjMWRh
ZmZjYmZmNWUyODRmMGQ5NzkyZjI0ODY1Yzg4Y2U1MDJmYmQuLmRkNzc4NmNlOGI5NjYxMTZkMjY5
YTI1MTBhNWYyZjgyMjljMTcwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaApAQCAtMzMsNiArMzMs
MjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBTdHJpbmcgY29kZTsK
ICAgICAvLyBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBzb3VyY2VNYXA7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlw
dG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2RlOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYWRlck1vZHVs
ZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb2RlOworICAgICAgICBkZWNvZGVyID4+IGNv
ZGU7CisgICAgICAgIGlmICghY29kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdU
Rk1vdmUoKmNvZGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5j
aWxGYWNlU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2ls
RmFjZVN0YXRlLmgKaW5kZXggNjVhNmIzYWE5YTU0N2YzMjY2MDI0MDAyMzkwNjE4MWZjMTVhZWMz
MS4uZTQwMWI2NGNkMzUyZmZhZDBmNmE1NDg3NTcxMzI1OTcyZDM4MjQ4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oCkBA
IC0zNSw2ICszNSwzOSBAQCBzdHJ1Y3QgU3RlbmNpbEZhY2VTdGF0ZSB7CiAgICAgUEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb24gZmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3Bl
cmF0aW9uIGRlcHRoRmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uIHBh
c3NPcDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvbXBhcmU7CisgICAg
ICAgIGVuY29kZXIgPDwgZmFpbE9wOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoRmFpbE9wOwor
ICAgICAgICBlbmNvZGVyIDw8IHBhc3NPcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXBhcmVGdW5jdGlvbj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21wYXJlOwor
ICAgICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24+IGZh
aWxPcDsKKyAgICAgICAgZGVjb2RlciA+PiBmYWlsT3A7CisgICAgICAgIGlmICghZmFpbE9wKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uPiBkZXB0aEZhaWxPcDsKKyAgICAgICAgZGVj
b2RlciA+PiBkZXB0aEZhaWxPcDsKKyAgICAgICAgaWYgKCFkZXB0aEZhaWxPcCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbj4gcGFzc09wOworICAgICAgICBkZWNvZGVyID4+IHBhc3NP
cDsKKyAgICAgICAgaWYgKCFwYXNzT3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29tcGFyZSksIFdURk1vdmUoKmZhaWxP
cCksIFdURk1vdmUoKmRlcHRoRmFpbE9wKSwgV1RGTW92ZSgqcGFzc09wKSB9IH07CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaAppbmRleCBmMzEwMzA2MWIwNmZlMDYyY2VlYzAzMTFkMjBlMDM1Mjk2OWMwOGZiLi5j
MjViMWFmMzQxYWFhMDcwMTU5NjAwNTU4ZTNjYjY2NzAwMTgzYTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJl
QmluZGluZ0xheW91dC5oCkBAIC0zNSw2ICszNSwzMyBAQCBzdHJ1Y3QgU3RvcmFnZVRleHR1cmVC
aW5kaW5nTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3MgYWNj
ZXNzOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24gdmlld0RpbWVuc2lvbjsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IGFjY2VzczsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7
CisgICAgICAgIGVuY29kZXIgPDwgdmlld0RpbWVuc2lvbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdG9yYWdlVGV4dHVyZUJpbmRp
bmdMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M+IGFjY2VzczsKKyAgICAg
ICAgZGVjb2RlciA+PiBhY2Nlc3M7CisgICAgICAgIGlmICghYWNjZXNzKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAg
ICAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHZp
ZXdEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsKKyAgICAgICAg
aWYgKCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmFjY2VzcyksIFdURk1vdmUoKmZvcm1hdCksIFdU
Rk1vdmUoKnZpZXdEaW1lbnNpb24pIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVN1cHBvcnRlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGYzODkwM2UwNzI0MzIzOTE4MzZj
MjY2MzMzZmM1OTViZGM3NjIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewor
CitzdHJ1Y3QgU3VwcG9ydGVkRmVhdHVyZXMgeworICAgIFZlY3RvcjxTdHJpbmc+IGZlYXR1cmVz
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgZmVhdHVyZXM7CisgICAgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3VwcG9y
dGVkRmVhdHVyZXM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gZmVhdHVyZXM7CisgICAgICAgIGRlY29kZXIgPj4g
ZmVhdHVyZXM7CisgICAgICAgIGlmICghZmVhdHVyZXMpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZmVhdHVyZXMpIH0gfTsK
KyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZhY2EwM2VkNGZlZTM1MTY2ODU5MzdiY2UxZDZkZmQyYTJjOTZkNTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRz
LmgKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPGNzdGRpbnQ+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0cnVjdCBTdXBw
b3J0ZWRMaW1pdHMgeworICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24xRCB7IDAgfTsK
KyAgICB1aW50MzJfdCBtYXhUZXh0dXJlRGltZW5zaW9uMkQgeyAwIH07CisgICAgdWludDMyX3Qg
bWF4VGV4dHVyZURpbWVuc2lvbjNEIHsgMCB9OworICAgIHVpbnQzMl90IG1heFRleHR1cmVBcnJh
eUxheWVycyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhCaW5kR3JvdXBzIHsgMCB9OworICAgIHVp
bnQzMl90IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IHsgMCB9Owor
ICAgIHVpbnQzMl90IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IHsg
MCB9OworICAgIHVpbnQzMl90IG1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdlIHsgMCB9
OworICAgIHVpbnQzMl90IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UgeyAwIH07CisgICAgdWlu
dDMyX3QgbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50MzJf
dCBtYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50MzJfdCBt
YXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlIHsgMCB9OworICAgIHVpbnQ2NF90IG1heFVu
aWZvcm1CdWZmZXJCaW5kaW5nU2l6ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBtYXhTdG9yYWdlQnVm
ZmVyQmluZGluZ1NpemUgeyAwIH07CisgICAgdWludDMyX3QgbWluVW5pZm9ybUJ1ZmZlck9mZnNl
dEFsaWdubWVudCB7IDAgfTsKKyAgICB1aW50MzJfdCBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxp
Z25tZW50IHsgMCB9OworICAgIHVpbnQzMl90IG1heFZlcnRleEJ1ZmZlcnMgeyAwIH07CisgICAg
dWludDMyX3QgbWF4VmVydGV4QXR0cmlidXRlcyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhWZXJ0
ZXhCdWZmZXJBcnJheVN0cmlkZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhJbnRlclN0YWdlU2hh
ZGVyQ29tcG9uZW50cyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU3Rv
cmFnZVNpemUgeyAwIH07CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29y
a2dyb3VwIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWCB7IDAg
fTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkgeyAwIH07CisgICAgdWlu
dDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaIHsgMCB9OworICAgIHVpbnQzMl90IG1heENv
bXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uIHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZURpbWVuc2lvbjFEOworICAgICAgICBlbmNvZGVyIDw8
IG1heFRleHR1cmVEaW1lbnNpb24yRDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhUZXh0dXJlRGlt
ZW5zaW9uM0Q7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZUFycmF5TGF5ZXJzOworICAg
ICAgICBlbmNvZGVyIDw8IG1heEJpbmRHcm91cHM7CisgICAgICAgIGVuY29kZXIgPDwgbWF4RHlu
YW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGVuY29kZXIgPDwg
bWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGVuY29k
ZXIgPDwgbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIg
PDwgbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9y
YWdlQnVmZmVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0b3JhZ2VU
ZXh0dXJlc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFVuaWZvcm1CdWZm
ZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VW5pZm9ybUJ1ZmZlckJp
bmRpbmdTaXplOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5Vbmlmb3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50Owor
ICAgICAgICBlbmNvZGVyIDw8IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4VmVydGV4QnVmZmVyczsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhW
ZXJ0ZXhBdHRyaWJ1dGVzOworICAgICAgICBlbmNvZGVyIDw8IG1heFZlcnRleEJ1ZmZlckFycmF5
U3RyaWRlOworICAgICAgICBlbmNvZGVyIDw8IG1heEludGVyU3RhZ2VTaGFkZXJDb21wb25lbnRz
OworICAgICAgICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAg
ICAgICAgZW5jb2RlciA8PCBtYXhDb21wdXRlSW52b2NhdGlvbnNQZXJXb3JrZ3JvdXA7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBlbmNvZGVy
IDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhDb21w
dXRlV29ya2dyb3VwU2l6ZVo7CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91
cHNQZXJEaW1lbnNpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkTGltaXRzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVEaW1l
bnNpb24xRDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlRGltZW5zaW9uMUQ7CisgICAg
ICAgIGlmICghbWF4VGV4dHVyZURpbWVuc2lvbjFEKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0dXJlRGlt
ZW5zaW9uMkQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZURpbWVuc2lvbjJEOworICAg
ICAgICBpZiAoIW1heFRleHR1cmVEaW1lbnNpb24yRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VGV4dHVyZURp
bWVuc2lvbjNEOworICAgICAgICBkZWNvZGVyID4+IG1heFRleHR1cmVEaW1lbnNpb24zRDsKKyAg
ICAgICAgaWYgKCFtYXhUZXh0dXJlRGltZW5zaW9uM0QpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVB
cnJheUxheWVyczsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlQXJyYXlMYXllcnM7Cisg
ICAgICAgIGlmICghbWF4VGV4dHVyZUFycmF5TGF5ZXJzKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhCaW5kR3Jv
dXBzOworICAgICAgICBkZWNvZGVyID4+IG1heEJpbmRHcm91cHM7CisgICAgICAgIGlmICghbWF4
QmluZEdyb3VwcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxp
bmVMYXlvdXQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVy
UGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGlmICghbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVy
UGlwZWxpbmVMYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBp
cGVsaW5lTGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IG1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBpZiAoIW1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFk
ZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJT
dGFnZTsKKyAgICAgICAgaWYgKCFtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1
aW50MzJfdD4gbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBt
YXhTYW1wbGVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBpZiAoIW1heFNhbXBsZXJzUGVyU2hh
ZGVyU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAg
ICAgaWYgKCFtYXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhT
dG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhTdG9y
YWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhTdG9yYWdlVGV4dHVy
ZXNQZXJTaGFkZXJTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJT
dGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdl
OworICAgICAgICBpZiAoIW1heFVuaWZvcm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IG1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhV
bmlmb3JtQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAgIGlmICghbWF4VW5pZm9ybUJ1ZmZlckJp
bmRpbmdTaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemU7CisgICAg
ICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAgICBpZiAo
IW1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWluVW5pZm9ybUJ1ZmZl
ck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBtaW5Vbmlmb3JtQnVmZmVyT2Zm
c2V0QWxpZ25tZW50OworICAgICAgICBpZiAoIW1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1l
bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8dWludDMyX3Q+IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAgICAg
IGRlY29kZXIgPj4gbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgaWYg
KCFtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhWZXJ0ZXhC
dWZmZXJzOworICAgICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlcnM7CisgICAgICAgIGlm
ICghbWF4VmVydGV4QnVmZmVycykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VmVydGV4QXR0cmlidXRlczsKKyAg
ICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhBdHRyaWJ1dGVzOworICAgICAgICBpZiAoIW1heFZl
cnRleEF0dHJpYnV0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlOwor
ICAgICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlOworICAgICAgICBp
ZiAoIW1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhJbnRlclN0YWdl
U2hhZGVyQ29tcG9uZW50czsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhJbnRlclN0YWdlU2hhZGVy
Q29tcG9uZW50czsKKyAgICAgICAgaWYgKCFtYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9uZW50cykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplOworICAgICAgICBkZWNv
ZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAgICAgICAgaWYgKCFtYXhD
b21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVJbnZvY2F0
aW9uc1Blcldvcmtncm91cDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlSW52b2NhdGlv
bnNQZXJXb3JrZ3JvdXA7CisgICAgICAgIGlmICghbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29y
a2dyb3VwKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVg7CisgICAgICAgIGRl
Y29kZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBpZiAoIW1heENvbXB1
dGVXb3JrZ3JvdXBTaXplWCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVZOwor
ICAgICAgICBkZWNvZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgaWYg
KCFtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVXb3JrZ3Jv
dXBTaXplWjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7Cisg
ICAgICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21w
dXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRl
V29ya2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFtYXhDb21wdXRlV29ya2dyb3Vw
c1BlckRpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHsgeworICAgICAgICAgICAgKm1heFRleHR1cmVEaW1lbnNpb24xRCwKKyAgICAg
ICAgICAgICptYXhUZXh0dXJlRGltZW5zaW9uMkQsCisgICAgICAgICAgICAqbWF4VGV4dHVyZURp
bWVuc2lvbjNELAorICAgICAgICAgICAgKm1heFRleHR1cmVBcnJheUxheWVycywKKyAgICAgICAg
ICAgICptYXhCaW5kR3JvdXBzLAorICAgICAgICAgICAgKm1heER5bmFtaWNVbmlmb3JtQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heFNhbXBsZWRUZXh0dXJlc1BlclNo
YWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAg
ICAgICAgICAqbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICpt
YXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhVbmlmb3Jt
QnVmZmVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFVuaWZvcm1CdWZmZXJCaW5k
aW5nU2l6ZSwKKyAgICAgICAgICAgICptYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemUsCisgICAg
ICAgICAgICAqbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAgICAgICpt
aW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50LAorICAgICAgICAgICAgKm1heFZlcnRleEJ1
ZmZlcnMsCisgICAgICAgICAgICAqbWF4VmVydGV4QXR0cmlidXRlcywKKyAgICAgICAgICAgICpt
YXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSwKKyAgICAgICAgICAgICptYXhJbnRlclN0YWdlU2hh
ZGVyQ29tcG9uZW50cywKKyAgICAgICAgICAgICptYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNp
emUsCisgICAgICAgICAgICAqbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwLAorICAg
ICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWCwKKyAgICAgICAgICAgICptYXhDb21w
dXRlV29ya2dyb3VwU2l6ZVksCisgICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtncm91cFNpemVa
LAorICAgICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uLAorICAgICAg
ICB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xh
eW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5n
TGF5b3V0LmgKaW5kZXggMDY5MjY0NGViMDlhZmU1YmQ4NzI5N2RhOWNmMGZiMWNlODIxZjhmZS4u
YTI5YjljZjJkNzhlOTI1ZDBiYTAzZGM2MjM4YWU3NDlmMzA4MGZmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0
LmgKQEAgLTM0LDYgKzM0LDMzIEBAIHN0cnVjdCBUZXh0dXJlQmluZGluZ0xheW91dCB7CiAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlIHNhbXBsZVR5cGU7CiAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CiAgICAgYm9vbCBtdWx0aXNh
bXBsZWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVUeXBlOwor
ICAgICAgICBlbmNvZGVyIDw8IHZpZXdEaW1lbnNpb247CisgICAgICAgIGVuY29kZXIgPDwgbXVs
dGlzYW1wbGVkOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1w
bGVUeXBlPiBzYW1wbGVUeXBlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVR5cGU7CisgICAg
ICAgIGlmICghc2FtcGxlVHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+
IHZpZXdEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsKKyAgICAg
ICAgaWYgKCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG11bHRpc2FtcGxlZDsKKyAgICAgICAgZGVj
b2RlciA+PiBtdWx0aXNhbXBsZWQ7CisgICAgICAgIGlmICghbXVsdGlzYW1wbGVkKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
KnNhbXBsZVR5cGUpLCBXVEZNb3ZlKCp2aWV3RGltZW5zaW9uKSwgV1RGTW92ZSgqbXVsdGlzYW1w
bGVkKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3Jp
cHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlw
dG9yLmgKaW5kZXggMzFhMDY2ZTY1MDQ1YTVmOTc1ZGIxNGM2ZTdiMTBhNWZmMTdiOTkxYi4uMzMy
MjE3YmE2MTI1MmMxNDgwN2JlNjQ4ODAyOWUzNWQ4ZWM1MjUyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKQEAgLTQx
LDYgKzQxLDU3IEBAIHN0cnVjdCBUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNj
cmlwdG9yQmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24gZGltZW5zaW9u
OwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZVVzYWdlRmxhZ3MgdXNhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsK
KyAgICAgICAgZW5jb2RlciA8PCBzaXplOworICAgICAgICBlbmNvZGVyIDw8IG1pcExldmVsQ291
bnQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlQ291bnQ7CisgICAgICAgIGVuY29kZXIgPDwg
ZGltZW5zaW9uOworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8
PCB1c2FnZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3RE
ZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6ZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkludGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OworICAgICAgICBkZWNvZGVyID4+IG1p
cExldmVsQ291bnQ7CisgICAgICAgIGlmICghbWlwTGV2ZWxDb3VudCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPiBzYW1wbGVDb3VudDsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3VudDsKKyAg
ICAgICAgaWYgKCFzYW1wbGVDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4g
ZGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IGRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFk
aW1lbnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAg
ZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlVXNhZ2VGbGFncz4gdXNhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gdXNhZ2U7CisgICAg
ICAgIGlmICghdXNhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpz
aXplKSwgV1RGTW92ZSgqbWlwTGV2ZWxDb3VudCksIFdURk1vdmUoKnNhbXBsZUNvdW50KSwgV1RG
TW92ZSgqZGltZW5zaW9uKSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2UpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRv
ci5oCmluZGV4IGZmYTU2ZTUzYmJhMDkyMDlhYmJkNWYxZTQ5YzI2YWRjMjNlNTc0ZWEuLmE4MTc0
MzU1ZTFkNjlmMzM2ODI5ZjY0MjNmMDMxMjJlOTlmZTg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgK
QEAgLTQyLDYgKzQyLDYzIEBAIHN0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3IgOiBwdWJsaWMg
T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Oklu
dGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSBiYXNlQXJyYXlMYXllcjsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYXJyYXlMYXllckNvdW50OworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2Um
PigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgZm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8
IGRpbWVuc2lvbjsKKyAgICAgICAgZW5jb2RlciA8PCBhc3BlY3Q7CisgICAgICAgIGVuY29kZXIg
PDwgYmFzZU1pcExldmVsOworICAgICAgICBlbmNvZGVyIDw8IG1pcExldmVsQ291bnQ7CisgICAg
ICAgIGVuY29kZXIgPDwgYmFzZUFycmF5TGF5ZXI7CisgICAgICAgIGVuY29kZXIgPDwgYXJyYXlM
YXllckNvdW50OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBv
YmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0Pj4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+
IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+PiBkaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4g
ZGltZW5zaW9uOworICAgICAgICBpZiAoIWRpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVy
ZUFzcGVjdD4gYXNwZWN0OworICAgICAgICBkZWNvZGVyID4+IGFzcGVjdDsKKyAgICAgICAgaWYg
KCFhc3BlY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBiYXNlTWlwTGV2ZWw7
CisgICAgICAgIGRlY29kZXIgPj4gYmFzZU1pcExldmVsOworICAgICAgICBpZiAoIWJhc2VNaXBM
ZXZlbCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4+IG1p
cExldmVsQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gbWlwTGV2ZWxDb3VudDsKKyAgICAgICAg
aWYgKCFtaXBMZXZlbENvdW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYmFz
ZUFycmF5TGF5ZXI7CisgICAgICAgIGRlY29kZXIgPj4gYmFzZUFycmF5TGF5ZXI7CisgICAgICAg
IGlmICghYmFzZUFycmF5TGF5ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdl
ckNvb3JkaW5hdGU+PiBhcnJheUxheWVyQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gYXJyYXlM
YXllckNvdW50OworICAgICAgICBpZiAoIWFycmF5TGF5ZXJDb3VudCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3RE
ZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKmRpbWVuc2lvbiksIFdU
Rk1vdmUoKmFzcGVjdCksIFdURk1vdmUoKmJhc2VNaXBMZXZlbCksIFdURk1vdmUoKm1pcExldmVs
Q291bnQpLCBXVEZNb3ZlKCpiYXNlQXJyYXlMYXllciksIFdURk1vdmUoKmFycmF5TGF5ZXJDb3Vu
dCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9y
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDI0ODEwMmRmNmY0MGZhZGFmOGFhZjA2MTljNTgyMTQ1YTU5NmYxNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0
aW9uRXJyb3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKKworc3RydWN0IFZhbGlkYXRpb25FcnJvciB7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBtZXNzYWdlOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZhbGlkYXRpb25F
cnJvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgICAg
ICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbWVzc2FnZSkgfSB9OworICAgIH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmgKaW5kZXggYTFiNTNjOTdjNzliNTc5M2M5N2U2
MWZiM2FhN2JkNjNiZTM2OWE3My4uZjkzZmJjZDYyYzEyODkwNzNjNGE5NjcxZmIyYjY2MDZkZDBk
ZDM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRl
eEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0
ZXhBdHRyaWJ1dGUuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IFZlcnRleEF0dHJpYnV0ZSB7
CiAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAKICAgICBQQUw6OldlYkdQVTo6SW5k
ZXgzMiBzaGFkZXJMb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29kZXIgPDwg
c2hhZGVyTG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVydGV4QXR0cmlidXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEZvcm1h
dD4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3Jt
YXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0OworICAgICAgICBkZWNvZGVyID4+IG9m
ZnNldDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkluZGV4MzI+IHNoYWRl
ckxvY2F0aW9uOworICAgICAgICBkZWNvZGVyID4+IHNoYWRlckxvY2F0aW9uOworICAgICAgICBp
ZiAoIXNoYWRlckxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKm9mZnNldCksIFdU
Rk1vdmUoKnNoYWRlckxvY2F0aW9uKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaAppbmRleCAwMzc3NzRiMWI3MTg5ZTM2NWU4MjMwYjNm
YjE2MjgzYzY4MDcxNDZiLi4yMzEwMmRjZGIzNDQyNGI3YTgxYjVkZjIyMmZkY2QwNWQwMjM1OGUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVm
ZmVyTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRl
eEJ1ZmZlckxheW91dC5oCkBAIC0zNiw2ICszNiwzMyBAQCBzdHJ1Y3QgVmVydGV4QnVmZmVyTGF5
b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGFycmF5U3RyaWRlOwogICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhTdGVwTW9kZSBzdGVwTW9kZTsKICAgICBWZWN0b3I8VmVydGV4QXR0cmlidXRl
PiBhdHRyaWJ1dGVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgYXJyYXlT
dHJpZGU7CisgICAgICAgIGVuY29kZXIgPDwgc3RlcE1vZGU7CisgICAgICAgIGVuY29kZXIgPDwg
YXR0cmlidXRlczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBhcnJh
eVN0cmlkZTsKKyAgICAgICAgZGVjb2RlciA+PiBhcnJheVN0cmlkZTsKKyAgICAgICAgaWYgKCFh
cnJheVN0cmlkZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU+IHN0ZXBNb2RlOworICAg
ICAgICBkZWNvZGVyID4+IHN0ZXBNb2RlOworICAgICAgICBpZiAoIXN0ZXBNb2RlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxWZXJ0ZXhBdHRyaWJ1dGU+PiBhdHRyaWJ1dGVzOworICAgICAgICBkZWNvZGVyID4+IGF0dHJp
YnV0ZXM7CisgICAgICAgIGlmICghYXR0cmlidXRlcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCphcnJheVN0cmlkZSksIFdU
Rk1vdmUoKnN0ZXBNb2RlKSwgV1RGTW92ZSgqYXR0cmlidXRlcykgfSB9OworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDg0MjQ3MTNkZGNkNDk4ZjZiNjAxYzQw
ODJjNzE5N2UxZGJlMmJiNTkuLjQ2ZmY4Yzc1NDNlYzAyYWEyMWQ2ZGVkN2FkOWUxZjE0ODIwMTFl
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0
ZS5oCkBAIC0zNCw2ICszNCwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1
Y3QgVmVydGV4U3RhdGUgOiBwdWJsaWMgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFZlY3Rvcjxz
dGQ6Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZlcnM7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFn
ZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXJzOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlcnRleFN0YXRlPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJv
Z3JhbW1hYmxlU3RhZ2U+IHByb2dyYW1tYWJsZVN0YWdlOworICAgICAgICBkZWNvZGVyID4+IHBy
b2dyYW1tYWJsZVN0YWdlOworICAgICAgICBpZiAoIXByb2dyYW1tYWJsZVN0YWdlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxzdGQ6Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+PiBidWZmZXJzOworICAgICAgICBk
ZWNvZGVyID4+IGJ1ZmZlcnM7CisgICAgICAgIGlmICghYnVmZmVycykKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwcm9ncmFt
bWFibGVTdGFnZSksIFdURk1vdmUoKmJ1ZmZlcnMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNjc2ZGFkZGFjODgzMTk2YzZh
MzQ0YTlmYjFhNmQ0Y2Q0MWFmOGNiYi4uOTFkMWVhYjg5MDUxODRmOGUwMjEzZDM5YWU4ZGRiNTQy
YzNjOGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMSw2ICszMSwyOSBAQCBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRSZW5kZXJpbmdS
ZXNvdXJjZXNSZXF1ZXN0LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRXZWJHTFJlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3QuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVBZGFwdGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNw
cAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNwcAorR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHAKK0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BV
LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3Bw
CitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAKK0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVTYW1wbGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9k
dWxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAKK0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcAorR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC03NjAsMyArNzgzLDI2IEBAIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorCitSZW1vdGVB
ZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJlY2VpdmVy
LmNwcAorUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQnVm
ZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKK1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tcHV0ZVBpcGVsaW5l
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlRGV2aWNlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlR1BVTWVzc2FnZVJl
Y2VpdmVyLmNwcAorUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1v
dGVRdWVyeVNldE1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVF1ZXVlTWVzc2FnZVJlY2VpdmVy
LmNwcAorUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlclBhc3NFbmNvZGVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUmVuZGVyUGlwZWxpbmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCitSZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlU2hhZGVyTW9kdWxl
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2RhNjU3NGY4ZDY0Mzg0M2Q5MDQy
ZDMxNDQ2NTM2OWRjMTg1OGQ3Yi4uNmVmZWNiY2VlNDY1OTJlNzU4ZTBlODhjZjZlOTE4MWNlOTI5
OTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0zODAsNiArMzgwLDkgQEAKIAkJMUMwQTE5NUMxQzkxNkUxQjAwRkUwRUJCIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHlTY3JpcHRTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMEExOTVCMUM5MTZFMUIwMEZFMEVCQiAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5U2NyaXB0U291cmNlLmggKi87IH07CiAJCTFDMjA5MzYw
MjIzMThDQjAwMDAyNkEzOSAvKiBOU0F0dHJpYnV0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjA5MzVFMjIzMThDQjAwMDAyNkEzOSAv
KiBOU0F0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CiAJCTFDMjE4NDAyMjIzMzg3MjgwMEJBQzcwMCAvKiBOU0F0dHJpYnV0ZWRT
dHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzIxODQwMTIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFD
NTY1NTdGMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNTY1NTdDMjc0NUM1QTAwMDYz
MDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCAqLzsgfTsKKwkJMUM1NjU1ODAyNzQ1QzVBMTAw
NjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUM1NjU1N0QyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRT
b3VyY2UxMDIuY3BwICovOyB9OworCQkxQzU2NTU4MTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmll
ZFNvdXJjZTEwMy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzU2NTU3RTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgKi87
IH07CiAJCTFDODkxRDY2MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JVSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4OTFENjMxOUIxMjRG
RjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggKi87IH07CiAJCTFDOEUyODIwMTI3NUQxNTQw
MEJDN0JEMCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDOEUyODFFMTI3NUQxNTQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3Iu
aCAqLzsgfTsKIAkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclVJUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUy
ODMyMTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JVSVByb3h5LmggKi87IH07CkBAIC0y
ODc5LDYgKzI4ODIsOSBAQAogCQkxQzIwOTM1RTIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1
dGVkU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TQXR0cmlidXRlZFN0cmluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIwOTM1RjIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRy
aWJ1dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTlNBdHRyaWJ1dGVkU3RyaW5n
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIxODQwMTIyMzM4NzI4MDBCQUM3
MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDNTY1NTdDMjc0NUM1QTAwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAx
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDEuY3BwOyBwYXRoID0gIkRl
cml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDEuY3Bw
Ijsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUM1NjU1N0QyNzQ1QzVB
MTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5p
ZmllZFNvdXJjZTEwMi5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMi5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQkxQzU2NTU3RTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEw
My5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTAzLmNwcDsgcGF0aCA9ICJE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAzLmNw
cCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDNzM5RTg1MjM0N0JD
RjYwMEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBD
b3JlVGV4dEhlbHBlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNzM5RTg3
MjM0N0JEMEYwMEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29y
ZVRleHRIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNzdDMTk1MTI4
OEE4NzIwMDZBNzQyRiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkluc3BlY3RvclVJUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODk1LDYgKzI5MDEsODAgQEAKIAkJMUM4RTJBMzExMjc3
ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQzhFMkEz
MjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYklu
c3BlY3RvclVJTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViSW5zcGVjdG9yVUlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDFEMjc0NDZBMDMwMDJDQ0I3OCAvKiBSZW1vdGVHUFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMUUyNzQ0
NkEwMzAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BV
T2JqZWN0SGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAxRjI3NDQ2
QTAzMDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUXVl
cnlTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjAyNzQ0NkEwNDAw
MkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5k
ZXJCdW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjEyNzQ0NkEw
NDAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVF1
ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjIyNzQ0NkEwNDAw
MkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzAyMzI3NDQ2QTA1MDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDI0Mjc0NDZBMDUwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9iamVjdEhlYXAuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzAyNTI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVy
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDI2Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDI3Mjc0NDZBMDYwMDJDQ0I3OCAv
KiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJQ
YXNzRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyODI3NDQ2
QTA2MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjkyNzQ0
NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZVJlbmRlclBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDJBMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwMkIyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJDMjc0NDZBMDcwMDJD
Q0I3OCAvKiBSZW1vdGVTYW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNhbXBsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMkQyNzQ0NkEwNzAwMkNDQjc4IC8q
IFJlbW90ZVBpcGVsaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5
b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJFMjc0NDZBMDgwMDJD
Q0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJl
Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyRjI3NDQ2QTA4MDAy
Q0NCNzggLyogUmVtb3RlRGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZURldmlj
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDMwMjc0NDZBMDgwMDJD
Q0I3OCAvKiBSZW1vdGVRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVRdWV1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVt
b3RlUGlwZWxpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUGlwZWxpbmVM
YXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMjI3NDQ2QTA4
MDAyQ0NCNzggLyogUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUV4dGVybmFsVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAz
MzI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAzNDI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzAzNTI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwMzYyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVRleHR1cmVWaWV3LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzcyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZURl
dmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwMzgyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZUdQVS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVHUFUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwMzkyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVSZW5kZXJCdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAzQTI3NDQ2QTA5MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUXVlcnlTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzAzQjI3NDQ2QTBBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBpcGVs
aW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDNDMjc0NDZBMEEwMDJDQ0I3OCAvKiBS
ZW1vdGVDb21wdXRlUGlwZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBpcGVs
aW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDREMjc0NDZDQjcwMDJD
Q0I3OCAvKiBSZW1vdGVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDRFMjc0
NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwNEYyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQWRhcHRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzA1MDI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFu
ZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVD
b21tYW5kQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTEy
NzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1MjI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVt
b3RlQmluZEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUJpbmRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDUz
Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQmluZEdyb3VwTGF5b3V0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU0Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5k
R3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQmluZEdyb3Vw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU1Mjc0NDZDQjkwMDJDQ0I3
OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVDb21tYW5kRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA1NjI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZEVuY29kZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NzI3NDQ2Q0I5MDAyQ0NC
NzggLyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVDb21tYW5kQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDU4Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTkyNzQ0NkNC
QTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDVBMjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDc5Mjc0NEExQ0MwMDJD
Q0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVT
dXBwb3J0ZWRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3
QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkdQVVN1cHBvcnRlZExpbWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzA3QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZN
ZW1vcnlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBX
ZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmFsaWRhdGlvbkVy
cm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDdFMjc0NEI5REIwMDJD
Q0I3OCAvKiBXZWJHUFVFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVFcnJvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4MDI3NDRCRDk3MDAyQ0NCNzggLyogUmVt
b3RlUXVldWUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUXVldWUubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDgxMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODIy
NzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDgzMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NDI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3Rl
QmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cExheW91dC5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODUyNzQ0QkQ5
ODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA4NjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg3Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0
dXJlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVRleHR1cmUubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg4Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVU
ZXh0dXJlVmlldy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODkyNzQ0QkQ5OTAwMkNDQjc4
IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1
ZmZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEEy
NzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEIyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5
U2V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4QzI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3Rl
U2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEQyNzQ0QkQ5QTAwMkND
Qjc4IC8qIFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEUyNzQ0QkQ5QTAw
MkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVD
b21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDhGMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA5MDI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwOTIyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5NDI3NDRCRDlCMDAy
Q0NCNzggLyogUmVtb3RlR1BVLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUdQVS5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTUyNzQ0QkQ5QjAwMkNDQjc4
IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRF
bmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzlFQkE1
QjIwODdFNzRFMDAwNTQ0MjkgLyogTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW07
IHBhdGggPSBpb3MvTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBOEI5MzUxMjdDNzc0RTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJv
eHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNw
ZWN0b3JVSVByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0E4Qjk0
MzEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
SW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CkBAIC03MTg1LDYgKzcyNjUsODEgQEAKIAkJCXBhdGggPSBBdXRvbWF0
aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUM5OEMwMUMyNzQ0Njky
NjAwMkNDQjc4IC8qIFdlYkdQVSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMUM5OEMwNTkyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3Bw
ICovLAorCQkJCTFDOThDMDRGMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLmggKi8s
CisJCQkJMUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMu
aW4gKi8sCisJCQkJMUM5OEMwNTIyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5j
cHAgKi8sCisJCQkJMUM5OEMwNTQyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5o
ICovLAorCQkJCTFDOThDMDkyMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTEyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRH
cm91cExheW91dC5jcHAgKi8sCisJCQkJMUM5OEMwNTMyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90
ZUJpbmRHcm91cExheW91dC5oICovLAorCQkJCTFDOThDMDg0Mjc0NEJEOTgwMDJDQ0I3OCAvKiBS
ZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNEUyNzQ0NkNC
NzAwMkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5jcHAgKi8sCisJCQkJMUM5OEMwNEQyNzQ0NkNCNzAw
MkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5oICovLAorCQkJCTFDOThDMDkwMjc0NEJEOUEwMDJDQ0I3
OCAvKiBSZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTAyNzQ0NkNCODAw
MkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIuY3BwICovLAorCQkJCTFDOThDMDU3Mjc0NDZD
QjkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVyLmggKi8sCisJCQkJMUM5OEMwODkyNzQ0
QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJ
MUM5OEMwNTYyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCAqLywK
KwkJCQkxQzk4QzA1NTI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIuaCAq
LywKKwkJCQkxQzk4QzA5NTI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTgyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNv
bXB1dGVQYXNzRW5jb2Rlci5jcHAgKi8sCisJCQkJMUM5OEMwNUEyNzQ0NkNCQTAwMkNDQjc4IC8q
IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oICovLAorCQkJCTFDOThDMDkzMjc0NEJEOUIwMDJD
Q0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5
OEMwM0IyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAgKi8sCisJ
CQkJMUM5OEMwM0MyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5oICov
LAorCQkJCTFDOThDMDhFMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkYyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZURl
dmljZS5jcHAgKi8sCisJCQkJMUM5OEMwMzcyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZURldmlj
ZS5oICovLAorCQkJCTFDOThDMDhGMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkEyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZUV4dGVy
bmFsVGV4dHVyZS5jcHAgKi8sCisJCQkJMUM5OEMwMzIyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90
ZUV4dGVybmFsVGV4dHVyZS5oICovLAorCQkJCTFDOThDMDgyMjc0NEJEOTgwMDJDQ0I3OCAvKiBS
ZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMUQyNzQ0NkEw
MzAwMkNDQjc4IC8qIFJlbW90ZUdQVS5jcHAgKi8sCisJCQkJMUM5OEMwMzgyNzQ0NkEwOTAwMkND
Qjc4IC8qIFJlbW90ZUdQVS5oICovLAorCQkJCTFDOThDMDk0Mjc0NEJEOUIwMDJDQ0I3OCAvKiBS
ZW1vdGVHUFUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzEyNzQ0NkEwODAwMkNDQjc4IC8q
IFJlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKKwkJCQkxQzk4QzAyRDI3NDQ2QTA3MDAyQ0NC
NzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA4NTI3NDRCRDk4MDAy
Q0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMw
M0EyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0LmNwcCAqLywKKwkJCQkxQzk4QzAx
RjI3NDQ2QTAzMDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuaCAqLywKKwkJCQkxQzk4QzA4QjI3
NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5
OEMwMjEyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmNwcCAqLywKKwkJCQkxQzk4QzAz
MDI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUXVldWUuaCAqLywKKwkJCQkxQzk4QzA4MDI3NDRC
RDk3MDAyQ0NCNzggLyogUmVtb3RlUXVldWUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzky
NzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5jcHAgKi8sCisJCQkJMUM5OEMw
MjAyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5oICovLAorCQkJCTFDOThD
MDgzMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwMkIyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29k
ZXIuY3BwICovLAorCQkJCTFDOThDMDIyMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyLmggKi8sCisJCQkJMUM5OEMwOEEyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjYyNzQ0NkEw
NjAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzAy
NzI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCAqLywKKwkJCQkx
Qzk4QzA4MTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwMzMyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBp
cGVsaW5lLmNwcCAqLywKKwkJCQkxQzk4QzAyOTI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlUmVu
ZGVyUGlwZWxpbmUuaCAqLywKKwkJCQkxQzk4QzA4NjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3Rl
UmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjgyNzQ0NkEwNjAwMkND
Qjc4IC8qIFJlbW90ZVNhbXBsZXIuY3BwICovLAorCQkJCTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3
OCAvKiBSZW1vdGVTYW1wbGVyLmggKi8sCisJCQkJMUM5OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4IC8q
IFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjMyNzQ0NkEwNTAwMkND
Qjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5jcHAgKi8sCisJCQkJMUM5OEMwMzQyNzQ0NkEwOTAw
MkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5oICovLAorCQkJCTFDOThDMDhDMjc0NEJEOUEw
MDJDQ0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1bGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMw
MzUyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUuY3BwICovLAorCQkJCTFDOThDMDI1
Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLmggKi8sCisJCQkJMUM5OEMwODcyNzQ0
QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMw
MzYyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNwcCAqLywKKwkJCQkxQzk4
QzAyRTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcuaCAqLywKKwkJCQkxQzk4
QzA4ODI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwMjQyNzQ0NkEwNTAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdEhlYXAuY3BwICov
LAorCQkJCTFDOThDMDFFMjc0NDZBMDMwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmggKi8s
CisJCQkpOworCQkJcGF0aCA9IFdlYkdQVTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTFDQjc0NjE5Mjc0MzZERTMwMEYxOTg3NCAvKiBXZWJHUFUgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzI1NSw2ICs3NDEwLDcgQEAKIAkJCQkx
Q0I3NDY3OTI3NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oICovLAog
CQkJCTFDQjc0NjgzMjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvci5oICovLAogCQkJCTFDQjc0NjkyMjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJHUFVDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyog
V2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMUNCNzQ2OTcyNzQzOUNCQTAwRjE5
ODc0IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0Njg5Mjc0
MzlDQjYwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oICovLAog
CQkJCTFDQjc0Njc2Mjc0MzlDQjEwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yLmggKi8sCkBAIC03MjYyLDYgKzc0MTgsNyBAQAogCQkJCTFDQjc0NjQ3Mjc0MzdBN0Yw
MEYxOTg3NCAvKiBXZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oICovLAogCQkJCTFDQjc0
NjcxMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oICovLAogCQkJ
CTFDQjc0Njg1Mjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmggKi8s
CisJCQkJMUM5OEMwN0UyNzQ0QjlEQjAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmggKi8sCiAJCQkJ
MUNCNzQ2ODcyNzQzOUNCNjAwRjE5ODc0IC8qIFdlYkdQVUV4dGVudDNELmggKi8sCiAJCQkJMUNC
NzQ2NkYyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaCAqLywKIAkJCQkxQ0I3NDY4NjI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BVRXh0ZXJuYWxU
ZXh0dXJlRGVzY3JpcHRvci5oICovLApAQCAtNzI3Niw2ICs3NDMzLDcgQEAKIAkJCQkxQ0I3NDY2
QzI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCAqLywKIAkJ
CQkxQ0I3NDY3MDI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luMkQuaCAqLywKIAkJCQkx
Q0I3NDZBMDI3NDM5Q0JEMDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luM0QuaCAqLywKKwkJCQkxQzk4
QzA3QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovLAogCQkJ
CTFDQjc0Njk0Mjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNl
LmggKi8sCiAJCQkJMUNCNzQ2OTgyNzQzOUNCQjAwRjE5ODc0IC8qIFdlYkdQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NjZEMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJH
UFVQcmltaXRpdmVTdGF0ZS5oICovLApAQCAtNzI5NSw5ICs3NDUzLDEyIEBACiAJCQkJMUNCNzQ2
NkIyNzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCAqLywK
IAkJCQkxQ0I3NDY3MzI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5o
ICovLAogCQkJCTFDQjc0Njk2Mjc0MzlDQkEwMEYxOTg3NCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA3OTI3NDRBMUNDMDAyQ0NCNzggLyogV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaCAqLywKKwkJCQkxQzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzgg
LyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8sCiAJCQkJMUNCNzQ2NzUyNzQzOUNCMTAwRjE5
ODc0IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCiAJCQkJMUNCNzQ2ODEyNzQz
OUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMUNCNzQ2
ODAyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oICovLAor
CQkJCTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAq
LywKIAkJCQkxQ0I3NDY3MjI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVVmVydGV4QXR0cmlidXRl
LmggKi8sCiAJCQkJMUNCNzQ2OEYyNzQzOUNCODAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleEJ1ZmZl
ckxheW91dC5oICovLAogCQkJCTFDQjc0NjlBMjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0
ZXhTdGF0ZS5oICovLApAQCAtNzY4Niw2ICs3ODQ3LDkgQEAKIAkJCQkyRDg1MDhDNDIxMkUzM0VD
MDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk4LmNwcCAqLywKIAkJCQkyRDg1MDhCMTIxMkUzM0U5
MDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk5LmNwcCAqLywKIAkJCQkyRDg1MDhCRTIxMkUzM0VC
MDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTEwMC5jcHAgKi8sCisJCQkJMUM1NjU1N0MyNzQ1QzVB
MDAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDEuY3BwICovLAorCQkJCTFDNTY1NTdEMjc0NUM1
QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCAqLywKKwkJCQkxQzU2NTU3RTI3NDVD
NUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9
ICJ1bmlmaWVkLXNvdXJjZXMiOwogCQkJcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3Vu
aWZpZWQtc291cmNlcyI7CkBAIC05MDUxLDYgKzkyMTUsNyBAQAogCQk1NTA2NDBBMTI0MDcxQTI5
MDBBQUUwNDUgLyogZ3JhcGhpY3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTFDOThDMDFDMjc0NDY5MjYwMDJDQ0I3OCAvKiBXZWJHUFUgKi8sCiAJCQkJ
RjQwOTRDQkMyNTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcCAq
LywKIAkJCQlGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5k
bGUuaCAqLywKIAkJCQk3QjE2MTkxMzI3MTlBRTc2MDBDNDBFQUMgLyogR1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMLmggKi8sCkBAIC0xNDcxMiw2ICsxNDg3Nyw5IEBACiAJCQkJMkQ4NTA4RDgy
MTJFMzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDg1MDhDNTIxMkUzM0VEMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJEODUwOEQyMjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlmaWVkU291cmNlMTAw
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDNTY1NTdGMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlm
aWVkU291cmNlMTAxLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDNTY1NTgwMjc0NUM1QTEwMDYz
MDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDNTY1NTgx
Mjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUzOEExRkMwMjNBNTUxQkYwMEQyMzc0RiAvKiBVc2VySW50ZXJmYWNlSWRpb20ubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFC
MTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclBy
b3h5LmNwcAppbmRleCBmNjM0ODQ2Yjk1NTczZDUzNDZkODZiOGRiNmRiOWQzNDQzNWQxMTczLi5k
YTRiZDExMGJjMzdmYTBhYjIyNTlmNzc4MWYwYWMzOWY3ZmQ0MTcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUFkYXB0ZXJQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgUmVtb3RlQWRhcHRlclBy
b3h5Ojp+UmVtb3RlQWRhcHRlclByb3h5KCkKIHsKIH0KIAotdm9pZCBSZW1vdGVBZGFwdGVyUHJv
eHk6OnJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPiYm
IGNhbGxiYWNrKQordm9pZCBSZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVlc3REZXZpY2UoY29uc3Qg
UEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGRlc2NyaXB0b3IpOwogICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVBZGFwdGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCmluZGV4IDZlODU0M2IxMDViOWI1NDliZjY4ZjY4
OTAxODYwZTg3YTliYTFmMTUuLjgzM2JiM2VlMzU5ZDFiYjg4NGJmNzk5ZTk1OWFmZWE1OTQ3Nzg2
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCkBAIC01Niw3ICs1Niw3IEBA
IHByaXZhdGU6CiAKICAgICBXZWJHUFVJZGVudGlmaWVyIGJhY2tpbmcoKSBjb25zdCB7IHJldHVy
biBtX2JhY2tpbmc7IH0KIAotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBQQUw6OldlYkdQ
VTo6RGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6
OkRldmljZT4pPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpX
ZWJHUFU6OkRldmljZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2Vi
R1BVOjpEZXZpY2U+JiYpPiYmKSBmaW5hbDsKIAogICAgIERlcXVlPFdURjo6RnVuY3Rpb248dm9p
ZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPj4gbV9jYWxsYmFja3M7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwCmluZGV4IDNmZDg1NzM0NzU0Y2RjMGUxYzFkMWYxNmMw
YTdlYjU2NDYxMGYwMjcuLmEyNzlkNDZjMWQ4NmM4N2I2Y2YxZTE5YjgzMGMyNTg5MGIxYjJlOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVRleHR1cmVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBA
QCBSZW1vdGVUZXh0dXJlUHJveHk6On5SZW1vdGVUZXh0dXJlUHJveHkoKQogewogfQogCi1SZWY8
UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBSZW1vdGVUZXh0dXJlUHJveHk6OmNyZWF0ZVZpZXco
Y29uc3Qgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYg
ZGVzY3JpcHRvcikgY29uc3QKK1JlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+IFJlbW90ZVRl
eHR1cmVQcm94eTo6Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yKQogewogICAgIFVOVVNFRF9QQVJBTShk
ZXNjcmlwdG9yKTsKICAgICByZXR1cm4gUmVtb3RlVGV4dHVyZVZpZXdQcm94eTo6Y3JlYXRlKG1f
Y29udmVydFRvQmFja2luZ0NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHku
aAppbmRleCA1ZmFkODFiNmJkOTRkZDk0ZWU4NDRlODA1MjE4NWU3ZmU0OWM4NWUxLi5hMzhjZjM0
M2YzOWRlMzU4MWU2ZTRhOTE2MjllOGEyY2U4OTRhMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlUHJveHkuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViR1BVSWRl
bnRpZmllciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKLSAgICBSZWY8
UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBmaW5hbDsKIAogICAgIHZv
aWQgZGVzdHJveSgpIGZpbmFsOwogCg==
</data>
<flag name="commit-queue"
          id="469676"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444607</attachid>
            <date>2021-11-17 16:50:08 -0800</date>
            <delta_ts>2021-11-17 19:19:00 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233247-20211117165006.patch</filename>
            <type>text/plain</type>
            <size>466487</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlOTU1YzRk
MzViZmFiZjA1YzU1NmIxZmM1NGJjZTBjMmY0NmYzOWZlLi4yMjA4ZTBjYmQ1NWE0MWI4MTE1ZmMx
NmE3MTBiMDlkNTUwMzY4NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAor
MjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
dG8gdGhlIGVudW0gY2xhc3Nlcywgc28gdGhleSBjYW4gYmUgc2VyaWFsaXplZC4KKworICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHA6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6QWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2UpOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oOgorICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaDoKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg6CisgICAgICAgICogcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVMb2FkT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU1hcE1vZGUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
U3RhdGlzdGljTmFtZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93
ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNv
ZGVyLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RvcmFnZVRleHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0b3JlT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3Qu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24u
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lv
bi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oOgor
CiAyMDIxLTExLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQXBwbGUgUGF5XSBoYW5kbGUgdW5rbm93biBzZXR1cCBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
ZjkzNmE3MzIxN2Y4NmI1NDU3NTU5Y2VkOTRiN2MzMDc4MTMzNDU2Li41YWNlMjVlOTg5MDA0MmEx
Yzg1NWY5M2M2NWQyYTQzOGU0YzQxMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MCBAQAorMjAy
MS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIGNsYXNzZXMgaW4gR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUgdG8gcmVjZWl2ZSBXZWJHUFUncyBJUEMgbWVzc2FnZXMu
CisgICAgICAgIEVhY2ggb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGFuIGFzc29jaWF0ZWQgbWVz
c2FnZXMuaW4gZmlsZS4gRWFjaCBvZiB0aGVzZSBvYmplY3RzCisgICAgICAgIGhvbGRzIGEgYmFj
a2luZyBQQUw6OldlYkdQVSBvYmplY3Qgd2hpY2ggaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlv
bi4gVGhlIG1ldGhvZHMKKyAgICAgICAgdGhhdCByZWNlaXZlIHRoZSBJUEMgbWVzc2FnZXMgYXJl
IGN1cnJlbnRseSB1bmltcGxlbWVudGVkLCBidXQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoCisgICAg
ICAgIHRoZXknbGwganVzdCBmb3J3YXJkIG9uIHRoZSBjYWxscyB0byB0aGVpciBiYWNraW5nIFBB
TDo6V2ViR1BVIG9iamVjdC4KKworICAgICAgICBUaGlzIGFsc28gYWRkcyBzZXJpYWxpemF0aW9u
IHJvdXRpbmVzIGZvciBhbGwgdGhlIHN0cnVjdHMgaW4gU2hhcmVkL1dlYkdQVS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgKHlldCku
IFdlJ3JlIHZlcnkgY2xvc2UsIHRob3VnaCEhISEKKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5
LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUFkYXB0ZXI6On5SZW1vdGVBZGFwdGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCaW5kR3JvdXA6OlJl
bW90ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6flJlbW90
ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6c2V0TGFiZWwp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QmluZEdyb3VwLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmguCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cExheW91dDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0Ojp+UmVtb3RlQmluZEdyb3Vw
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0OjpzZXRMYWJl
bCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZlcjo6UmVtb3RlQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQnVmZmVyOjptYXBBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUJ1ZmZlcjo6dW5tYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVBy
b3h5LmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVDb21tYW5kQnVmZmVyOjpSZW1vdGVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
Q29tbWFuZEVuY29kZXI6OlJlbW90ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJl
VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmZpbGxC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cHVzaERlYnVn
R3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdH
cm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1
Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRp
bWVzdGFtcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmluaXNo
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OnNldExhYmVsKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21t
YW5kRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjp+UmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmRpc3BhdGNoSW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRl
UGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1
Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjppbnNl
cnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGlu
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNv
bXB1dGVQaXBlbGluZTo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZS5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURldmljZTo6UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNl
Ojp+UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
ZXZpY2U6OmltcG9ydEV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURl
dmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2
aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1
dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRl
UmVuZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3Jl
YXRlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OnB1c2hFcnJvclNj
b3BlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0
dXJlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVFeHRlcm5hbFRleHR1
cmU6OlJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4dGVy
bmFsVGV4dHVyZTo6flJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUV4dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVHUFUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVTo6
UmVtb3RlR1BVKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjp+UmVtb3RlR1BVKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91
dDo6UmVtb3RlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGlu
ZUxheW91dDo6flJlbW90ZVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5
U2V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6UmVt
b3RlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6flJlbW90ZVF1
ZXJ5U2V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVR
dWV1ZTo6UmVtb3RlUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6flJlbW90
ZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OnN1Ym1pdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UXVldWU6OndyaXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpjb3B5
RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpz
ZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVldWUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlOjpSZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6On5SZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpz
ZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6
OnNldEluZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXI6OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6On5SZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxSZWZlcmVuY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5PY2NsdXNp
b25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjplbmRP
Y2NsdXNpb25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjpSZW1vdGVSZW5kZXJQaXBl
bGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0
QmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGlwZWxpbmU6
OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQaXBlbGluZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2Rl
LmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTaGFk
ZXJNb2R1bGU6OlJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNo
YWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2hhZGVyTW9kdWxlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
dXJlOjp+UmVtb3RlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6OmNy
ZWF0ZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVWaWV3LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6UmVtb3RlVGV4dHVyZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6flJlbW90ZVRleHR1cmVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZVZp
ZXc6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpPYmplY3RIZWFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21C
YWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Qmlu
ZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21w
dXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9tQmFja2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5
b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNv
bnZlcnRRdWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmpl
Y3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZy
b21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0
UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVG
cm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVy
dFRleHR1cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaDogQWRkZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkJsZW5kU3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Qmxl
bmRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJp
bmRpbmcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkNvbG9yRGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b2xvckRpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRh
cmdldFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1h
bmRFbmNvZGVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkRlcHRoU3RlbmNpbFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkRlcHRoU3RlbmNpbFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRldmlj
ZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGV2
aWNlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUVy
cm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVudDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0REaWN0OjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNERGljdDo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkZyYWdtZW50U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6RnJhZ21lbnRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXI6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VD
b3B5VGV4dHVyZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weVRleHR1cmVUYWdnZWQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Oklt
YWdlQ29weVRleHR1cmVUYWdnZWQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZURh
dGFMYXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VE
YXRhTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjJERGljdDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9yaWdpbjNERGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpPcmlnaW4zRERpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok91dE9mTWVtb3J5RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T3V0T2ZNZW1vcnlFcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpQaXBlbGluZURlc2NyaXB0b3JCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpRdWVyeVNldERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rl
ckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVu
ZGVyUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0xheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQ
YXNzTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9uczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRv
cjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3Rh
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
RmVhdHVyZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9y
dGVkRmVhdHVyZXM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
TGltaXRzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRl
ZExpbWl0czo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVC
aW5kaW5nTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlw
dG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNj
cmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNj
cmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVW
aWV3RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZh
bGlkYXRpb25FcnJvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlZlcnRleFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZUFkYXB0ZXJQcm94eTo6cmVxdWVzdERldmljZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQ
cm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZVRleHR1cmVQ
cm94eTo6Y3JlYXRlVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlVGV4dHVy
ZVByb3h5OjpjcmVhdGVWaWV3IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5Lmg6CisKIDIwMjEtMTEtMTcg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9tZW50
dW0gYW5pbWF0b3Igc29tZXRpbWVzIHN0YXJ0cyB0aGUgYW5pbWF0aW9uIGF0IGEgdmVyeSBoaWdo
IHZlbG9jaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCmluZGV4IGM0ODA1ZGQ5
ODYxMTk3ZWU5NWU1MzZmM2I1MGY1N2RhNjQ2OWFhMTQuLjIzZjVjOWFjZjA5MWRkODdkMzM1MDkw
MWY0NWVhMDU2ZjJmY2ExYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBA
IC0xNDUsNyArMTQ1LDcgQEAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3RE
ZXZpY2VTdGF0dXMgc3RhdHVzLCBXR1BVRGV2aWNlIGRldmljZSwgY28KICAgICBhZGFwdGVyLT5y
ZXF1ZXN0RGV2aWNlQ2FsbGJhY2soc3RhdHVzLCBkZXZpY2UsIG1lc3NhZ2UpOwogfQogCi12b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+JiYgY2FsbGJhY2spCit2b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwuaAppbmRleCAzNDkyNGFjNjg5Yjc5OWY2OWY0OGYxNmY0ZjAxNWVkOWM1NzAxNDA4Li5lODRl
ZDRhODViNmJjM2U0MjEzZDgzN2Q5MThhN2MxNmRmOTgyYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVB
ZGFwdGVySW1wbC5oCkBAIC01OCw5ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0
RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNj
cmlwdG9yJiwgV1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OmZ1bmN0aW9u
PHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpmdW5jdGlv
bjx2b2lkKFJlZjxEZXZpY2U+KT4+IG1fY2FsbGJhY2tzOworICAgIERlcXVlPFdURjo6ZnVuY3Rp
b248dm9pZChSZWY8RGV2aWNlPiYmKT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV0dQVUFkYXB0ZXIg
bV9iYWNraW5nIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4dD4g
bV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29u
dmVydFRvQmFja2luZ0NvbnRleHQuaAppbmRleCAzMWY0NTRiYmRkNDlhNzliYzM3ZmNiODcxMzk0
NjU5Y2ZlZDBkOTJjLi4zYzliNWM3YjRkNTgzZDJhNjcyOGJiZDcyNzNiNWJiMjYwYzYyZDM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKICNpbmNsdWRl
ICJXZWJHUFVUZXh0dXJlVXNhZ2UuaCIKICNpbmNsdWRlIDxXZWJHUFUvV2ViR1BVLmg+CisjaW5j
bHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oCmluZGV4IDJiMThmOWI2
OGQyM2ZiYmIwZTM4MjkzYTFjOTVlMGNmNTk3YTk2NmQuLjMzODNlYTEzNjk0Y2M5ZjA3OTQ1MzBl
MDhiMGIyYzI0YTU2Y2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVVGV4dHVyZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIFdHUFVUZXh0dXJlIGJhY2tpbmcoKSBjb25zdCB7
IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsK
KyAgICBSZWY8VGV4dHVyZVZpZXc+IGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JikgZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oCmluZGV4IGUyZDljNjFkMGVmY2Y1YTZmYzMzN2JkNmFjZDkxOWNlOTEyYmUw
NzEuLjUwN2M0YWFjNDc2ZDgxYmUzNTI5YTM4Yjg5MTY1NjE1ZTA4NjRkZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVy
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRz
KCkgY29uc3QgeyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8RGV2aWNlPik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmlj
ZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+
JiYpPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBZGFwdGVyKFN0cmluZyYmIG5hbWUsIFN1
cHBvcnRlZEZlYXR1cmVzJiBmZWF0dXJlcywgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMsIGJvb2wg
aXNGYWxsYmFja0FkYXB0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaAppbmRleCA2N2JhZDViOWRmODk1
NGE0MDRmOTcwZGZmOWU1MzBhZWFhNTc3Y2QxLi40Y2FkZmE2NWRkNzAwY2MwYTFhNTlmYzRkMGJj
MjkzMjU3ODI4ZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkZHJlc3NNb2RlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVt
IGNsYXNzIEFkZHJlc3NNb2RlIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGUsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpBZGRy
ZXNzTW9kZTo6UmVwZWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJv
clJlcGVhdAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rv
ci5oCmluZGV4IGZlZDVlODFlNjgzYTg1ODg1ODk5OTc0YjRhNmQ0OGI3NDFhODQ0ZDguLjIwMjJi
ODA3MmJiNzRkNzBiZjQ5Y2ViMWU5YWY2OGE2Njk5ZTEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3Iu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTQ2LDMgKzQ3LDI2IEBAIGVudW0gY2xhc3MgQmxlbmRGYWN0b3IgOiB1aW50OF90IHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3RvciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvLAorICAgICAgICBQ
QUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6Ok9uZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5k
RmFjdG9yOjpTcmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNT
cmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGEsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNTcmNBbHBoYSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3Rvcjo6T25lTWludXNEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6RHN0
QWxwaGEsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNEc3RBbHBo
YSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpTcmNBbHBoYVNhdHVyYXRlZCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpDb25zdGFudCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50CisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kT3BlcmF0aW9uLmgKaW5kZXggMWY2MDBjOGRh
YmNhYTc1NzAzMGQ1NzIxOTM4ZjQwZDY0MTFhZjIyMC4uODZhMGI5ZGQ5YzM2OGEzOTU0YmYyNzRm
MWUxZDE5OTU2MTNlYTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzks
MTggQEAgZW51bSBjbGFzcyBCbGVuZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9u
LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OkFkZCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpTdWJ0cmFjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkJsZW5kT3BlcmF0aW9uOjpSZXZlcnNlU3VidHJhY3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpC
bGVuZE9wZXJhdGlvbjo6TWluLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246
Ok1heAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nVHlwZS5oCmluZGV4IDBhMGFkNjZiMDFkNDM2MGE5NzhhNzBhZTA4NTZjYTk1ZjkxN2Uz
ZDcuLjQ0MWI3MjhkNmE0MjAyOTY5ZTE3MDJhY2QzMjNhZDVkNzU3Zjg0YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyQmluZGluZ1R5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQnVmZmVy
QmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BV
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6
V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlOjpVbmlmb3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6QnVmZmVyQmluZGluZ1R5cGU6OlN0b3JhZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZm
ZXJCaW5kaW5nVHlwZTo6UmVhZE9ubHlTdG9yYWdlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQnVmZmVyVXNhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmgKaW5kZXggNTQwMTFmNDMzNzE1ZTRkYjE5ZTJiMGFh
YjVlMjgxYzg3NzEwYjM1Mi4uZDU1ZWNmYzQ2NWRjNTg4NjMzZDdjMmNlNDQ1NDE3OGU2MzhhNmEz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyVXNhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCiB1c2luZyBCdWZmZXJVc2FnZUZsYWdzID0gdWludDMyX3Q7Ci0KIGNsYXNz
IEJ1ZmZlclVzYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8QnVmZmVyVXNhZ2U+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgTUFQX1JFQUQgICAgICA9IDB4MDAw
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCmluZGV4
IDA5MWNhZGFiNDEyNDk3YzljOGQ0N2YzMDU4YjQ1OGM0NjdhYWNiMDMuLjQ0ODQyZmMzOWY5ZGRm
MzA5ZTgyOWMxMTI5YmY0YTBiMGRkNGViYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3Np
dGluZ0FscGhhTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxw
aGFNb2RlOjpPcGFxdWUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0Fs
cGhhTW9kZTo6UHJlbXVsdGlwbGllZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXBhcmVGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKaW5kZXggNmNiZWEzZDU4NDY5NGIwNDQzZGU3YmQ0
NWI2ODQ1YTcwYjQ5OTM1OC4uYjhlNzQxYjdkYjAzNjU3NjI2YTI5ZDI3N2U5YjA0NWUxNGZiNzY5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGFyZUZ1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5o
PgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC00MSwzICs0MiwyMSBAQCBlbnVtIGNs
YXNzIENvbXBhcmVGdW5jdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246Ok5ldmVyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6Q29tcGFyZUZ1bmN0aW9uOjpMZXNzLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1
bmN0aW9uOjpFcXVhbCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyLAor
ICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlckVxdWFsLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpBbHdheXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgKaW5kZXgg
YTQ2MzUyNDQxZWE3N2RkYTIyZGJjZjJjODIxMWU0YzkwZTkzYTQyOS4uM2EyZjA1MGIyNzQyMmIz
NzI2YzQzZDNkZTkzM2JmNTFkY2Q0ZWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6
OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQ29tcGlsYXRpb25NZXNz
YWdlVHlwZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yLAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkluZm8KKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cExvY2F0aW9uLmgKaW5kZXggZjA4MTllMDE0Y2Q5ZGRhYmFiZjBlM2JmYjZkM2ZkZGE3MDYwOGJi
Yy4uZWM3MTdiN2NiNWM0OTU2ZWQ2ODMzMDBhNDE4ODM5MjdjMWFhNmU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkJlZ2lubmluZywKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkVuZAorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oCmluZGV4IDhlNTI3N2JmZjliZjBl
NTYxMjhkYWNkZGY5NjgxZDY3OWQ3ZTQ5MzIuLjRjODdkMDc3MzkxYWNkNjE1ZDA2MWVmNTkwMWEx
MDVmNzBkODBkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUN1bGxNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAK
IG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3Mg
Q3VsbE1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisK
K25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2Vi
R1BVOjpDdWxsTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpDdWxsTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkN1bGxNb2RlOjpO
b25lLAorICAgICAgICBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkZyb250LAorICAgICAgICBQQUw6
OldlYkdQVTo6Q3VsbE1vZGU6OkJhY2sKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVEZXZpY2VMb3N0UmVhc29uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmgKaW5kZXggYWNkYmZmNmQ4OTQ5YTBlYzI5NmRj
NWVjZjM3NTMyZTJlZmEwM2NmZC4uYjQxZWM0MDQyNTJlNWMyOWZhNzE5N2U5ODlkYzg4MmQzNGM2
YWEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVu
dW0gY2xhc3MgRGV2aWNlTG9zdFJlYXNvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8UEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb24+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbiwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZAorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oCmluZGV4IDgyNmJk
YWI1YmMxZDlmODU1YTlmOTEyZDAyYzllYzQ1NGVhOWRkNDAuLmVlZGQ4NzE0ZDQ4ZDE3M2M5MDU3
NTM5YzI5OGExZmRmMDA2ODA2OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgRXJyb3JGaWx0ZXIgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcj4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkVycm9yRmlsdGVyOjpWYWxpZGF0aW9uCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRmVhdHVyZU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZlYXR1cmVOYW1lLmgKaW5kZXggMGQ1ODcwYmM4MDkxMGJjNTkzYWZhZmRjNDAz
ZDRlOTk4ZWI0OTFkMi4uNmEzMzU4OWQ4OTQ5ZmE4NDc2YzE0ZGI3ZmQzNTg0OWFmZjczZjM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmVhdHVyZU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVGZWF0dXJlTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNDIsMyArNDMsMjIgQEAgZW51bSBjbGFzcyBGZWF0dXJl
TmFtZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6
OkZlYXR1cmVOYW1lPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5h
bWU6OkRlcHRoQ2xpcENvbnRyb2wsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgzMmZsb2F0U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uQmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uRXRjMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVO
YW1lOjpUZXh0dXJlQ29tcHJlc3Npb25Bc3RjLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVy
ZU5hbWU6OlRpbWVzdGFtcFF1ZXJ5LAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6
OkluZGlyZWN0Rmlyc3RJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUZpbHRlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZpbHRlck1vZGUuaAppbmRleCA4YmM4ODEyMjA1Y2U4MmI1Yzg0Y2E3ZTRiNTUxMzJhNmFk
MTY0OGU3Li4xYWZiM2ZhNWU1MTJmZWVlMDA5NmMxZTFhOWNhMjAxY2M5ZGEzY2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJN
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmlsdGVyTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBGaWx0ZXJNb2RlIDogdWlu
dDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RmlsdGVyTW9k
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BV
OjpGaWx0ZXJNb2RlLAorICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVyTW9kZTo6TmVhcmVzdCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkZpbHRlck1vZGU6OkxpbmVhcgorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKaW5kZXggN2MzYTA5NTZiM2Q1NTZlMWMz
YzJlZjZiZDE5ZjEzYTlkOGU1OTBhNy4uZmY2NWIxMDA3ZWQzOTJhNjFjZDViMDM0YzA2MmMyYmU2
MTI1MzdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRnJvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNSwzICszNiwxNSBAQCBlbnVtIGNsYXNzIEZy
b250RmFjZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkZyb250RmFjZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpGcm9udEZhY2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGcm9udEZhY2U6
OkNDVywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZyb250RmFjZTo6Q1cKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
LmgKaW5kZXggNjdhZmU4MTFlYjhkODhiYmMyYThiYjllZTQ1OGNiZDBkMTYwZWZjNC4uOTU1ZjA5
N2RjZjAwZDQwMWQwMDk2MDc4MGZhM2IyNjY4Y2U1ZjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6
dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBz
b3VyY2U7CisgICAgLy8gRklYTUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9u
YWw8T3JpZ2luMkQ+IG9yaWdpbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbmRleEZvcm1hdC5oCmluZGV4IGU2ZDRi
Y2IzMjNjYWI1Yzc1YjczMGIwMjhjMzU4M2M3ZmI2MGViYTYuLmFkOTU2ZTcyZGQ4Nzc3NDIxNWQ1
Yjk4NjU3NGUxNmVlODZhMTAwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgSW5kZXhGb3JtYXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0OjpVaW50MTYsCisgICAgICAgIFBBTDo6V2ViR1BVOjpJ
bmRleEZvcm1hdDo6VWludDMyCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTG9h
ZE9wLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2Fk
T3AuaAppbmRleCBkODFmODlmMDllOWI2NmE3M2IxNjIxMTY5ZjQ2YWEyNDdlZWVlOTRjLi5kYzgy
NjBkNzMzMGQ2OGQ4NDg1ZWE3NjlmMmQwZWMwZWE1OTAxNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMg
KzM1LDE0IEBAIGVudW0gY2xhc3MgTG9hZE9wIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6TG9hZE9wPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkxvYWRPcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkxvYWRPcDo6TG9hZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaAppbmRleCA2Y2QxOWQ1Mzc2ZWY3MWJkMzUxMDU1YjkyMTMzYmQzMWI2YjJlOWE4Li5mMTdm
Yzc3NjM1YmZmZWY3MjA2MTNjZTVjMDNjZGIwMzA1OTE4YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oCkBAIC0z
Miw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiB1c2luZyBNYXBNb2RlRmxh
Z3MgPSB1aW50MzJfdDsKLQogY2xhc3MgTWFwTW9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1hcE1v
ZGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgUkVBRCAg
PSAweDAwMDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCmluZGV4IDJl
OGFlZWE5Mjk3YTczZWEyYThmY2VlNDFhNTc3MDgxOTAwNmQ5OTQuLmJmOTNmNjc5MDA0YWRjNjAz
MDc1OWU1ZWMzOTM3OGFkZDVkOTRjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlz
dGljTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQaXBlbGluZVN0YXRpc3RpY05h
bWUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQ
aXBlbGluZVN0YXRpc3RpY05hbWU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lLAorICAgICAgICBQQUw6
OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9ucywK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6Q2xpcHBlckludm9j
YXRpb25zLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlw
cGVyUHJpbWl0aXZlc091dCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGlj
TmFtZTo6RnJhZ21lbnRTaGFkZXJJbnZvY2F0aW9ucywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lU3RhdGlzdGljTmFtZTo6Q29tcHV0ZVNoYWRlckludm9jYXRpb25zCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93ZXJQcmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAppbmRleCAx
NjUzNWM2MWZiMTRiMmMwMmY2MDMyZGNkOWNjMjgwYzk0YTYxMjQwLi4zMDYwODk3Y2Y5ZWEzMmQ0
NzJkYTg2Mjg2ZWE1Njg5ODI0NzBmZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAg
LTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBv
d2VyUHJlZmVyZW5jZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6TG93
UG93ZXIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3Jt
YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNw
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oCmluZGV4IDk0MzAwODA0MDAyYTZjMDJkMThlZTcxYzVhODMzMWM3
MDBhZGZkNTcuLmZhN2QxZTFlZjViYzM4MmU1M2I3ZjdjZjI1MzZmMzRkZDI5ODUxZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRl
ZmluZWRDb2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0g
Y2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29s
b3JTcGFjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdC
CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVRv
cG9sb2d5LmgKaW5kZXggZTRkMGYyYWUyMmJjNjQ1YzQwMzJhNjk1MWZhNDVkNzUzYTVhZTYwYy4u
YjUwY2Y5MzA0YWIyZTE0MjQwZThhNzQ4ZDRhMDY5NjNkNGQ2ZjZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
cmltaXRpdmVUb3BvbG9neS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQcmltaXRpdmVU
b3BvbG9neSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5LAorICAgICAgICBQQUw6Oldl
YkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlBvaW50TGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lTGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1p
dGl2ZVRvcG9sb2d5OjpMaW5lU3RyaXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVU
b3BvbG9neTo6VHJpYW5nbGVMaXN0LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9w
b2xvZ3k6OlRyaWFuZ2xlU3RyaXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWVyeVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oCmluZGV4IDA1OTFmYjM1NDZhZmU2MzMwOWE3OTY3ZDVmOTA0MDlkODc3MWQ1
NGUuLmNjMzBkNDg4M2ZmMmRlMDZlZDlkOGJjOGM5OTJjNWRiODFjNjNkZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5
VHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBRdWVyeVR5cGUgOiB1aW50OF90IHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlU
eXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlUeXBlOjpPY2NsdXNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU6OlBpcGVsaW5lU3RhdGlzdGljcywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlF1ZXJ5VHlwZTo6VGltZXN0YW1wCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVF1ZXVlLmgKaW5kZXggZTE2ZTkzZGUxNjgyZTRiNTg5ZjIwYTk0ZWVhZDg2MzlmNjFh
ZmRmMC4uNmY4ZjhmODEwYjhkMDFhMTI4YzZiZGVmY2RlMzJjZjVhNDA5MjM4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgogI2luY2x1ZGUgIldlYkdQ
VUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggNWExMGM1ZjIxNjZkMGM1OGI3NDI0
NGZjY2RmODIwNWFjODY1NTZjZC4uMmQ3NWZmY2U4YmI4MTA0NGM5MGZjMDU4MjdlZDA5YzYwYzFi
NWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIldlYkdQVUluZGV4Rm9ybWF0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50
ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIK
KyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmgKaW5kZXggMWU3NmJhNzdiODQwYTEwN2Y2YzExNjEyZTgyNzNiZjMyM2VlNzMyZC4u
NzM1MmVhMWRkOGI5NTNiMjVmNTgyNDY2ZWFhNzc5NmVlNWRmMjJmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29s
b3IuaCIKICNpbmNsdWRlICJXZWJHUFVJbmRleEZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdQVUlu
dGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCBhYjVmYTAxOTg5NmFk
MDQ4ZDc1MjJkMDA5YTM3YjhjMTRkMzNlZWQxLi4yMDM4NzY4ZjQzNTc2YjE3NjE4YjQyMzdiNzJk
OWE5MzcwMjFmMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
TG9jYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUmVuZGVyUGFzc1RpbWVzdGFt
cExvY2F0aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2Nh
dGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6
QmVnaW5uaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0
aW9uOjpFbmQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oCmluZGV4IDE4Y2FkYzBlMDcwNjA3YTQ0MTUyMjIxN2QxMjFmYjVi
NDEwMmZmMDAuLmE0OTJjZTY2ZGY1YTEzNGQwZTA4ZmEzNTQxODQ2ODJjMjczYzNmMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBTYW1wbGVyQmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlLAor
ICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlOjpGaWx0ZXJpbmcsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU6Ok5vbkZpbHRlcmluZywKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbgorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaAppbmRl
eCA5MDY5YmI3ZWYyZDQyZGU2ZDc5YmNiODFkYTNhNzE5NDQzMDJlNDQ5Li5iYTBjNmY1NmJlODk1
ODk0ZWJhOWJlYjI0N2ZlOWU3MzA3OTEzMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsK
IApAQCAtNDEsMyArNDIsMjEgQEAgZW51bSBjbGFzcyBTdGVuY2lsT3BlcmF0aW9uIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbjo6S2VlcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm8s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW52ZXJ0LAorICAgICAgICBQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50Q2xhbXAsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRDbGFtcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb246OkluY3JlbWVudFdyYXAsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRXcmFwCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgKaW5kZXggNzJi
NzY4MTVjZGVjYTA3NGY1Yjg0ZWE4MjUwMDllMmM5ZDc1ZTgxNi4uZTQ3ZTdiOWY0YTkxMDdmNGY4
ZjEyMTYzZjJlNzFhZjk2MjQxNjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBTdG9yYWdlVGV4dHVyZUFjY2VzcyA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzLAorICAgICAgICBQQUw6OldlYkdQ
VTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M6OldyaXRlT25seQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaAppbmRleCA5NzBjYmZiZGQyZWYzNDViODkwOWJmYzVmYzY3
NTYwMzc1ODkzZDIxLi45OTQ0ZDhiYzIwMjkxY2RlODg1ZjI0YWI1YjJkOTgzNWY3ZDc0NGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
dG9yZU9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmVPcC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBTdG9yZU9wIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RvcmVPcD4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9y
ZU9wLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcDo6U3RvcmUsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTdG9yZU9wOjpEaXNjYXJkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oCmluZGV4IDA1YzkyZWUwOGNiYmU3NDhjMGY2MWNlNTU3NTU0NGYzYjk4NDM2
YjcuLmQ1MmVkMTJhODIxMjNkMDE3NDdhNmY1NTc0Nzg4NTcyMDZhYTc1NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBzZXRMYWJlbEludGVybmFsKG1f
bGFiZWwpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUmVmPFRleHR1cmVWaWV3PiBjcmVhdGVWaWV3
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlv
bmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oCmluZGV4IDc5YmVhMGNkOGMxN2U5
YzE4NjA0ZjQxMTVjZWMxZDhjYWQ4YTViYmEuLjU2MThjZmViNzUxODlkZDNiNmNkNmNkMzg0ODkz
YThhZDY1YWNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRy
YWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBl
bnVtIGNsYXNzIFRleHR1cmVBc3BlY3QgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0PiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0OjpBbGwsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlQXNwZWN0OjpTdGVuY2lsT25seSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVB
c3BlY3Q6OkRlcHRoT25seQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVEaW1lbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmVEaW1lbnNpb24uaAppbmRleCA0NzU0MTA3ZWU1YjM4MTljYzljODJmODQ3ZGU2
YmM0Y2RlMGQxOWRmLi41M2EyZTc5ZWNlN2IwNTJlOWE1ZGY0NjIxZDU0MDIzYjI5ZjM0NTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGltZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBUZXh0dXJlRGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZURpbWVuc2lvbjo6XzJkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZURp
bWVuc2lvbjo6XzNkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZv
cm1hdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZUZvcm1hdC5oCmluZGV4IDNjOGFhNmM0ODUzYTg1NDAyODZlMzgwYjE5ZmNmMTYxN2ZhMzJk
NWYuLjYyNTk0NjAwNWYwZTg2M2FmOTAzMjgxNjViMzg4OTEyZGQ3NTAyNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3Jt
YXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRm9ybWF0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCkBAIC0xNTMsMyArMTU0LDEwOCBAQCBlbnVtIGNsYXNzIFRleHR1cmVGb3Jt
YXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Ujhz
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4dWludCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c2ludCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OlIxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2
ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzh1bm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnOHNub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OlJnOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpSMzJ1aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMyc2ludCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpSZzE2c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnMTZmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YmE4dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVub3Jt
U1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm0sCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpSZ2I5ZTV1ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpS
Z2IxMGEydW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzExYjEw
dWZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMnVpbnQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzMyc2ludCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMzJmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OlJnYmExNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSZ2JhMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
UmdiYTE2ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1
aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTMyc2ludCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpEZXB0aDE2dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0OjpEZXB0aDI0cGx1cywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkRlcHRoMjRwbHVzU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpEZXB0aDMyZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpC
YzFSZ2JhVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2Jh
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVu
b3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3JtU1JH
QiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0IsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSVW5vcm0sCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSU25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpCYzVSZ1Vub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6QmM1UmdTbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJj
NmhSZ2JVZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzZoUmdi
RmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm0s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjh1bm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtU1JHQiwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2JhOHVub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYmE4dW5vcm1TUkdCLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RWFjUjExdW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpFYWNSMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkVhY1JnMTF1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkVhY1JnMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFz
dGM0eDRVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM0eDRV
bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5v
cm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5vcm1TUkdC
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtU1JHQiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QXN0Yzh4NVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkFzdGM4eDZVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkFzdGM4eDZVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpB
c3RjOHg4VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg4
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVV
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1T
UkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybSwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg2VW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDhVbm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDEwVW5vcm0sCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4MTBVbm9ybVNSR0IsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTJ4MTBVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEyVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDMyZmxvYXRTdGVuY2lsOAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDM4
ZGQzNGRkOTMyZDI0YWYxZGJlOWM0MmRmMmU5ZDcwYmQ1ZDhiZDcuLjM0YTAxY2FiMjBhNTI1NGUw
MGIzMzgyODhiY2EyNjA5NzQwM2ViZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTM4LDMgKzM5LDE4IEBAIGVudW0gY2xhc3MgVGV4dHVyZVNhbXBsZVR5cGUgOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlU2FtcGxlVHlwZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1w
bGVUeXBlOjpGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpV
bmZpbHRlcmFibGVGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBl
OjpEZXB0aCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OlVpbnQKKyAgICA+OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24u
aAppbmRleCBiMzVjMDQwMjNmMWRjNjhiMWFhZWVkODRlYjRiZTVjNWVmNTUzM2I5Li5kMzZlZTQ1
YzhhODY1MGU0YTZhMTNiZTcyNDllZTMzOGIzZDAzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGltZW5zaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewogCkBAIC0zOSwzICs0MCwxOSBAQCBlbnVtIGNsYXNzIFRleHR1cmVWaWV3
RGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3RGltZW5zaW9uOjpfMmRBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uOjpDdWJlLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdE
aW1lbnNpb246OkN1YmVBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGlt
ZW5zaW9uOjpfM2QKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3Jt
YXQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCmluZGV4IDk0ZWFjNDEzOGExNmU5ZWU2ZGRlMDA4NmExOGM3NjZiY2NjNDk3OWMu
LjJhMDEzNTM0Y2NkMzExYWU4MTcwY2ViMjZiZGNkYTMyMGI1NjU5NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtNjMsMyArNjQsNDMgQEAgZW51bSBjbGFzcyBWZXJ0ZXhGb3JtYXQgOiB1aW50
OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50
OHgyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHg0LAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50OHgyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0OjpTaW50OHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9y
bWF0OjpVbm9ybTh4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm04
eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHgyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTh4NCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdDo6VWludDE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OlVpbnQxNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50
MTZ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDE2eDQsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4MiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm0xNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVy
dGV4Rm9ybWF0OjpTbm9ybTE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNub3JtMTZ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNngy
LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDE2eDQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzIsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZv
cm1hdDo6RmxvYXQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9h
dDMyeDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyeDIsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4
Rm9ybWF0OjpVaW50MzJ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2lu
dDMyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzJ4MiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDMsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQzMng0CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmgKaW5kZXggNjRkMTJjOTgwODdlOGI1NDY4Yzdk
OTkzNDIwNDg3MTQ2MzQ5MzMxOS4uNDFiMzA2OWNmMGJmMzQ5YzY3MWMxMWNkZjhiZDFlYmFmM2Yz
OWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBj
bGFzcyBWZXJ0ZXhTdGVwTW9kZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU6OlZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlZlcnRleFN0ZXBNb2RlOjpJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTFVuaXRUZXN0cy9XR1NMVW5pdFRlc3Rz
Lm1tIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KaW5kZXgg
NzNkN2M3ZGM3OWJlNGZjYzBmZDA3ZTg1ODNhZjcwZDA4YmYwYzgxOC4uZjM3NGJhZDYzMzk0Yzcz
Zjg5OWVhZjVkNmRiZmIwY2E2YjdkZmM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XR1NM
VW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KKysrIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRl
c3RzL1dHU0xVbml0VGVzdHMubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8WENUZXN0
L1hDVGVzdC5oPgogI2ltcG9ydCA8dmVjdG9yPgorI2ltcG9ydCA8d3RmL0RhdGFMb2cuaD4KICNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogQGludGVyZmFjZSBXR1NMVW5pdFRlc3RzIDogWENUZXN0
Q2FzZQpAQCAtMzQsNiArMzUsNyBAQAogQGltcGxlbWVudGF0aW9uIFdHU0xVbml0VGVzdHMKIAog
LSAodm9pZCl0ZXN0RXhhbXBsZSB7CisgICAgZGF0YUxvZygiYXNkZlxuIik7CiAgICAgVmVjdG9y
PGludD4geCB7IDIsIDMsIH07CiAgICAgVmVjdG9yPGludD4geTsKICAgICB5LmFwcGVuZCgyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDdkNjM0NTM0ZWNlZDk5NzBmOWZlYjZhNmJmYjk0ZDAzODQz
YzAzZjQuLmMzMjk3NGE4NGIyYTY2OTQwNzM4ZjBkNGYzYzJiZjllNjEwYmMwMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJLSVRfRElSfSIKICAgICAiJHtXRUJLSVRfRElSfS9HUFVQcm9jZXNzIgog
ICAgICIke1dFQktJVF9ESVJ9L0dQVVByb2Nlc3MvZ3JhcGhpY3MiCisgICAgIiR7V0VCS0lUX0RJ
Un0vR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUiCiAgICAgIiR7V0VCS0lUX0RJUn0vR1BVUHJv
Y2Vzcy9tZWRpYSIKICAgICAiJHtXRUJLSVRfRElSfS9HUFVQcm9jZXNzL3dlYnJ0YyIKICAgICAi
JHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2VzcyIKQEAgLTEzNiw2ICsxMzcsMjkgQEAgc2V0KFdl
YktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0wKICAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQKIAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIKKyAg
ICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAKKyAgICBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQKKyAgICBHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyCisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21wdXRlUGFzc0VuY29kZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21wdXRlUGlwZWxpbmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVE
ZXZpY2UKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1
cmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUKKyAgICBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dAorICAgIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0CisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUXVldWUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJCdW5kbGUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyCisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQ
aXBlbGluZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIKKyAg
ICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUKKyAgICBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlCisgICAgR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcKKwogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIKICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5CiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJv
eHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCAzZGY5OGEzNTBkOGQ0NzRjNTI3ZDljMjQ5MTExYzRiZTUwZWJhZDQwLi43OTlhZDc1YjJhMWFi
MjEwZDA4MWQ1OWZkNWI0YjAyZDhiNmRhZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yNCw2ICsyNCwyOCBAQCAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cC5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNv
bW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5t
ZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlRGV2aWNlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQu
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVF
bmNvZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMu
aW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBs
ZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJv
Y2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMWYyNjY2ODQwMGFmOTIx
MmQwMGM3MWFlYTBiNTg1YTA3MDIzY2I5YS4uYTY1ZmMzNjE4NGNmZjhmNzc1MmQ2ODUyNzk4NjE1
NGI2YWY4MDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC0xNTQsNiArMTU0LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZXMKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBZGFwdGVyTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQWRhcHRlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUFkYXB0ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2Vz
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCkBAIC0xODUsNiArMTg4LDE1IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyTWVzCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNr
UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZXNS
ZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJpbmRHcm91cE1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJpbmRHcm91cE1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCdWZmZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCdWZmZXJNZXNzYWdlc1Jl
cGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RN
RmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKQEAgLTIwNiw5ICsyMTgsMzAgQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNUHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRCdWZm
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kQnVmZmVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29t
bWFuZEVuY29kZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNv
bXB1dGVQaXBlbGluZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbXB1dGVQaXBlbGluZU1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbXB1dGVQ
aXBlbGluZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZpY2VNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZpY2VNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZp
Y2VNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFs
VGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFsVGV4dHVyZU1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFsVGV4dHVy
ZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVHUFVNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHUFVNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHUFVNZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTI4MiwxMiArMzE1LDMzIEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhU291
cmNlUHJveHlNZXNzYWdlc1JlcGxpCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lz
dHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVQaXBlbGluZUxheW91dE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVBpcGVsaW5lTGF5b3V0TWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1
ZXJ5U2V0TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUXVlcnlTZXRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVRdWVyeVNldE1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVR
dWV1ZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVF1ZXVlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUXVldWVNZXNzYWdlc1JlcGxpZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVtb3RlQ29t
bWFuZExpc3RlbmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVt
b3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21t
YW5kTGlzdGVuZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdl
c1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVy
QnVuZGxlTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQaXBl
bGluZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyUGlwZWxpbmVNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTMwMCwxNSArMzU0LDI3
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZXJNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVy
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJN
b2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0
dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlVGV4dHVyZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4dHVy
ZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVWaWV3TWVzc2FnZXNS
ZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggNWY1ZjQ3MzA5NjNkYjY5NTVlZTliNDA5MzEzZGNiMDQwZjNjOTY4OC4uZGRlNWM2M2Zl
M2Y0YjMxNTI5N2RiNGI2ODQ4OWMyOWRlNWJiYTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMjQ3LDYgKzI0NywyOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgXAogCUdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QWRhcHRlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwIFwK
KwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQgXAorCUdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlciBcCisJR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVEZXZpY2UgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4
dHVyZSBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVIFwKKwlHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dCBcCisJR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVF1ZXVlIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5k
ZXJCdW5kbGUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGlu
ZSBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlciBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlIFwKKwlHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlVmlldyBcCiAJR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNz
UHJveHkgXAogCUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIgXAogCUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNDA5YTljNDYxNGE1NDYyNGFmZGZh
YWEwZTJmMTM5NWY0NzYzNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQWRhcHRl
ci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlICJX
ZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0
cy5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcihQQUw6Oldl
YkdQVTo6QWRhcHRlciYgYWRhcHRlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQor
ICAgIDogbV9iYWNraW5nKGFkYXB0ZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkK
K3sKK30KKworUmVtb3RlQWRhcHRlcjo6flJlbW90ZUFkYXB0ZXIoKQoreworfQorCit2b2lkIFJl
bW90ZUFkYXB0ZXI6OnJlcXVlc3REZXZpY2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9y
dGVkTGltaXRzJiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9y
KTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxi
YWNrKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBIQVZFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUFkYXB0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MGYzN2U3ZTQ2NzA5OGExNzZmZTRj
NDA3ODMxNDlhMGMxZDM3N2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmgKQEAgLTAsMCArMSw3NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEFkYXB0ZXI7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK3N0cnVjdCBEZXZpY2VE
ZXNjcmlwdG9yOworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBTdXBwb3J0ZWRGZWF0dXJlczsK
K3N0cnVjdCBTdXBwb3J0ZWRMaW1pdHM7Cit9CisKK2NsYXNzIFJlbW90ZUFkYXB0ZXIgZmluYWwg
OiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8UmVtb3RlQWRhcHRlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBhZGFwdGVy
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVBZGFwdGVyKGFkYXB0ZXIsIG9iamVjdEhlYXApKTsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVBZGFwdGVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVBZGFwdGVyKFBBTDo6V2ViR1BVOjpBZGFw
dGVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVBZGFwdGVyKGNvbnN0IFJl
bW90ZUFkYXB0ZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVBZGFwdGVyKFJlbW90ZUFkYXB0ZXIm
JikgPSBkZWxldGU7CisgICAgUmVtb3RlQWRhcHRlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUFk
YXB0ZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVBZGFwdGVyJiBvcGVyYXRvcj0oUmVtb3RlQWRh
cHRlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBD
OjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IFdlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIFdl
YkdQVUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJHUFU6OlN1cHBv
cnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiYpPiYmKTsKKworICAgIFJl
ZjxQQUw6OldlYkdQVTo6QWRhcHRlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVj
dEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmExMzNhYTZlMWNjNmI1MzlhMDQ5ZTc0NTY1OTNlZjAzOGE4MzRjOGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAq
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUFkYXB0ZXIgTm90
UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgUmVxdWVzdERldmljZShXZWJLaXQ6OldlYkdQ
VTo6RGV2aWNlRGVzY3JpcHRvciBkZXZpY2VEZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikgLT4gKFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyBz
dXBwb3J0ZWRGZWF0dXJlcywgV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyBzdXBwb3J0
ZWRMaW1pdHMpIFN5bmNocm9ub3VzCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ3MTBhNTQ1OTVlNmI0YjQyMGFiMTA5MjgzM2Y3MThjNDkxMjMwYjQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJpbmRHcm91cC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVCaW5kR3JvdXAuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUmVtb3RlQmluZEdyb3VwOjpSZW1vdGVCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkJp
bmRHcm91cCYgYmluZEdyb3VwLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
OiBtX2JhY2tpbmcoYmluZEdyb3VwKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7
Cit9CisKK1JlbW90ZUJpbmRHcm91cDo6flJlbW90ZUJpbmRHcm91cCgpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQmluZEdyb3VwOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURf
UEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZDEwZGY0
MTUyOGFkMTIyYWFhMDNiZTc2YTc4MDNhYmQ4YWI4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5oCkBA
IC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBC
aW5kR3JvdXA7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsK
K2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUJpbmRHcm91cCBmaW5hbCA6IHB1
YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVCaW5kR3JvdXA+IGNyZWF0ZShQQUw6OldlYkdQVTo6QmluZEdyb3VwJiBiaW5kR3Jv
dXAsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW90ZUJpbmRHcm91cChiaW5kR3JvdXAsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVCaW5kR3JvdXAoKTsKKworcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUJpbmRHcm91cChQQUw6Oldl
YkdQVTo6QmluZEdyb3VwJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVCaW5k
R3JvdXAoY29uc3QgUmVtb3RlQmluZEdyb3VwJikgPSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdy
b3VwKFJlbW90ZUJpbmRHcm91cCYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAmIG9w
ZXJhdG9yPShjb25zdCBSZW1vdGVCaW5kR3JvdXAmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5k
R3JvdXAmIG9wZXJhdG9yPShSZW1vdGVCaW5kR3JvdXAmJikgPSBkZWxldGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwor
CisgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+IG1fYmFja2luZzsKKyAgICBSZWY8V2Vi
R1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5k
R3JvdXAubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q3Zjk0MWFkNjJjOTg1MDczZWFiZmQzM2M1
NWNjMWRkZmMzZTZhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBS
ZW1vdGVCaW5kR3JvdXAgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwo
U3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YzBmMGUxMWU3NzQ5ZTk5OWYxNDE2NzFiMjVjODBjM2Q1ODY4Y2I5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQmluZEdyb3VwTGF5b3V0
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RI
ZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlv
dXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUJpbmRHcm91cExheW91dDo6UmVt
b3RlQmluZEdyb3VwTGF5b3V0KFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQmIGJpbmRHcm91
cExheW91dCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5n
KGJpbmRHcm91cExheW91dCkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQor
CitSZW1vdGVCaW5kR3JvdXBMYXlvdXQ6On5SZW1vdGVCaW5kR3JvdXBMYXlvdXQoKQoreworfQor
Cit2b2lkIFJlbW90ZUJpbmRHcm91cExheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7
CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlv
dXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMGZkYWNhZWEyYTU0MzlkMWNiZTcxYzZhOGZiM2UxOWM4MTg1ODU1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQmluZEdyb3VwTGF5b3V0OworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOwor
fQorCitjbGFzcyBSZW1vdGVCaW5kR3JvdXBMYXlvdXQgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQmluZEdy
b3VwTGF5b3V0PiBjcmVhdGUoUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYgYmluZEdyb3Vw
TGF5b3V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0
LCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQmluZEdyb3VwTGF5
b3V0KCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBS
ZW1vdGVCaW5kR3JvdXBMYXlvdXQoUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0KGNvbnN0IFJlbW90
ZUJpbmRHcm91cExheW91dCYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cExheW91dChS
ZW1vdGVCaW5kR3JvdXBMYXlvdXQmJikgPSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwTGF5
b3V0JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQmluZEdyb3VwTGF5b3V0JikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0JiBvcGVyYXRvcj0oUmVtb3RlQmluZEdyb3VwTGF5b3V0
JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0
cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2
b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3Vw
TGF5b3V0PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RI
ZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3ZWNkMjk0NjQ5NDhiOWM5ODI1NjFlNzNmYzI4YmZlNTI2MzcwNjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisv
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQmlu
ZEdyb3VwTGF5b3V0IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0
cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZj
MjZlNGI1ODg5ZTA4MzEzZDZhN2I5M2Y3ZWQxNjRkZjU2ZWE5OAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNw
cApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3Rl
QnVmZmVyOjpSZW1vdGVCdWZmZXIoUEFMOjpXZWJHUFU6OkJ1ZmZlciYgYnVmZmVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYnVmZmVyKQorICAgICwg
bV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUJ1ZmZlcjo6flJlbW90ZUJ1
ZmZlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjptYXBBc3luYyhQQUw6OldlYkdQVTo6
TWFwTW9kZUZsYWdzIG1hcE1vZGVGbGFncywgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6
ZTY0PiBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBVTlVTRURfUEFSQU0obWFwTW9kZUZsYWdzKTsKKyAgICBVTlVTRURfUEFSQU0ob2Zm
c2V0KTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZUJ1ZmZl
cjo6dW5tYXAoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZGF0
YSk7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjpkZXN0cm95KCkKK3sKK30KKwordm9pZCBSZW1v
dGVCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShs
YWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRhNDVhN2RkYWU3ZDQzMTg2NzU0
MGRlMDkyODkyMjEwZDM0MTUyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmgKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg+Cisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmg+CisjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKK2NsYXNzIEJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3Rl
QnVmZmVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUJ1ZmZlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpCdWZm
ZXImIGJ1ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQnVmZmVyKGJ1ZmZlciwgb2JqZWN0SGVhcCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUJ1ZmZlcigpOworCitwcml2YXRlOgorICAg
IGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQnVmZmVyKFBBTDo6V2ViR1BV
OjpCdWZmZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUJ1ZmZlcihjb25z
dCBSZW1vdGVCdWZmZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCdWZmZXIoUmVtb3RlQnVmZmVy
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUJ1ZmZlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUJ1
ZmZlciYpID0gZGVsZXRlOworICAgIFJlbW90ZUJ1ZmZlciYgb3BlcmF0b3I9KFJlbW90ZUJ1ZmZl
ciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAg
dm9pZCBtYXBBc3luYyhQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzLCBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6
ZTY0PiBzaXplRm9yTWFwLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4
X3Q+JiYpPiYmKTsKKyAgICB2b2lkIHVubWFwKFZlY3Rvcjx1aW50OF90PiYmKTsKKworICAgIHZv
aWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OkJ1ZmZlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhl
YXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42Y2VmMTAyMThlMjkyNDE5ZTVhYjczZWE5NGMwNzg5ODgyMGRmOGI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAorLyogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUJ1ZmZlciBOb3RSZWZDb3Vu
dGVkIFN0cmVhbSB7CisgICAgdm9pZCBNYXBBc3luYyhQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdz
IG1hcE1vZGVGbGFncywgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkgLT4gKFZlY3Rvcjx1aW50
OF90PiBkYXRhKSBTeW5jaHJvbm91cworICAgIHZvaWQgVW5tYXAoVmVjdG9yPHVpbnQ4X3Q+IGRh
dGEpCisgICAgdm9pZCBEZXN0cm95KCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NGE5ZDU5MTNmZDNlOGMxZmVjNjk2MWE1YWNmMjhhMDJkODIwYjM5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5k
QnVmZmVyLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRCdWZmZXIuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlbW90ZUNvbW1hbmRCdWZmZXI6OlJlbW90ZUNvbW1hbmRCdWZmZXIoUEFMOjpXZWJH
UFU6OkNvbW1hbmRCdWZmZXImIGNvbW1hbmRCdWZmZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2Jq
ZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhjb21tYW5kQnVmZmVyKQorICAgICwgbV9vYmplY3RI
ZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUNvbW1hbmRCdWZmZXI6On5SZW1vdGVDb21t
YW5kQnVmZmVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbChT
dHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFu
ZEJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21tYW5kQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE1NmZiYTZhOGMzNjNiNjYyMjU5ZTZiNmI1
MDNkZTViY2E1NjAwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBDb21tYW5kQnVmZmVyOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmpl
Y3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVDb21tYW5kQnVmZmVyIGZpbmFsIDogcHVibGljIElQ
Qzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90
ZUNvbW1hbmRCdWZmZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYgY29tbWFu
ZEJ1ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQ29tbWFuZEJ1ZmZlcihjb21tYW5kQnVmZmVyLCBv
YmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZEJ1ZmZlcigp
OworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3Rl
Q29tbWFuZEJ1ZmZlcihQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYsIFdlYkdQVTo6T2JqZWN0
SGVhcCYpOworCisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZlcihjb25zdCBSZW1vdGVDb21tYW5kQnVm
ZmVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZlcihSZW1vdGVDb21tYW5kQnVm
ZmVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRCdWZmZXImIG9wZXJhdG9yPShjb25z
dCBSZW1vdGVDb21tYW5kQnVmZmVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZl
ciYgb3BlcmF0b3I9KFJlbW90ZUNvbW1hbmRCdWZmZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwor
CisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPiBtX2JhY2tpbmc7CisgICAgUmVm
PFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI4Y2UxYmU3NjliMDU2
ZGU3NjAzZGIwMDY3MDQ0MjE4NTQxN2RjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlQ29tbWFuZEJ1ZmZlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7
CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5k
RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUNvbW1hbmRFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWI0MzY0N2Q4NmQwOTdmMWZhNjAx
NTcyMWVjN2NkOTY1YTYxZTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5jcHAKQEAgLTAsMCAr
MSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlQ29tbWFuZEVuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNvbW1hbmRFbmNvZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVDb21t
YW5kRW5jb2Rlcjo6UmVtb3RlQ29tbWFuZEVuY29kZXIoUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNv
ZGVyJiBjb21tYW5kRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAg
IDogbV9iYWNraW5nKGNvbW1hbmRFbmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhl
YXApCit7Cit9CisKK1JlbW90ZUNvbW1hbmRFbmNvZGVyOjp+UmVtb3RlQ29tbWFuZEVuY29kZXIo
KQoreworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MoY29u
c3QgV2ViR1BVOjpSZW5kZXJQYXNzRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBV
TlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6
OmJlZ2luQ29tcHV0ZVBhc3MoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbXB1dGVQYXNz
RGVzY3JpcHRvcj4mIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIo
CisgICAgV2ViR1BVSWRlbnRpZmllciBzb3VyY2UsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBz
b3VyY2VPZmZzZXQsCisgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAgICBQQUw6
OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LAorICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0o
c291cmNlT2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNF
RF9QQVJBTShkZXN0aW5hdGlvbk9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQor
Cit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKAorICAgIGNv
bnN0IFdlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJ
bWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNE
JiBjb3B5U2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFS
QU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoCisgICAgY29uc3QgV2Vi
R1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXImIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlT
aXplKQoreworICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0
aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVD
b21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb1RleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJ
bWFnZUNvcHlUZXh0dXJlJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0
dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRp
b24pOworICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFu
ZEVuY29kZXI6OmZpbGxCdWZmZXIoCisgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwK
KyAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LAorICAgIFBBTDo6V2Vi
R1BVOjpTaXplNjQgc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbk9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUp
OworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpwdXNoRGVidWdHcm91cChTdHJpbmcm
JiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKK30KKwordm9p
ZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdHcm91cCgpCit7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVs
KQoreworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
bWFuZEVuY29kZXI6OndyaXRlVGltZXN0YW1wKFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQsIFBB
TDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlT
ZXQpOworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30KKwordm9pZCBSZW1vdGVDb21t
YW5kRW5jb2Rlcjo6cmVzb2x2ZVF1ZXJ5U2V0KAorICAgIFdlYkdQVUlkZW50aWZpZXIgcXVlcnlT
ZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFF1ZXJ5LAorICAgIFBBTDo6V2ViR1BV
OjpTaXplMzIgcXVlcnlDb3VudCwKKyAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAor
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQpCit7CisgICAgVU5VU0VE
X1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RRdWVyeSk7CisgICAgVU5V
U0VEX1BBUkFNKHF1ZXJ5Q291bnQpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Cisg
ICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uT2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVDb21t
YW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3Im
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYjYwZTRiMTM4NmEyZTNlMGNkZDU5Yjc2YmYyZjhmNjY0ZWIzODA0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21tYW5kRW5jb2Rlci5oCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgorI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBDb21tYW5k
RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgewor
c3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yOworc3RydWN0IENvbXB1dGVQYXNzRGVzY3Jp
cHRvcjsKK3N0cnVjdCBJbWFnZUNvcHlCdWZmZXI7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZTsK
K2NsYXNzIE9iamVjdEhlYXA7CitzdHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3I7Cit9CisKK2Ns
YXNzIFJlbW90ZUNvbW1hbmRFbmNvZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUNvbW1hbmRFbmNvZGVy
PiBjcmVhdGUoUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyJiBjb21tYW5kRW5jb2RlciwgV2Vi
R1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVtb3RlQ29tbWFuZEVuY29kZXIoY29tbWFuZEVuY29kZXIsIG9iamVjdEhlYXAp
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kRW5jb2RlcigpOworCitwcml2
YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQ29tbWFuZEVu
Y29kZXIoUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7
CisKKyAgICBSZW1vdGVDb21tYW5kRW5jb2Rlcihjb25zdCBSZW1vdGVDb21tYW5kRW5jb2RlciYp
ID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyKFJlbW90ZUNvbW1hbmRFbmNvZGVy
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3Qg
UmVtb3RlQ29tbWFuZEVuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21tYW5kRW5jb2Rl
ciYgb3BlcmF0b3I9KFJlbW90ZUNvbW1hbmRFbmNvZGVyJiYpID0gZGVsZXRlOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNl
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGJlZ2luUmVuZGVyUGFzcyhjb25z
dCBXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAg
dm9pZCBiZWdpbkNvbXB1dGVQYXNzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21wdXRl
UGFzc0Rlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNvcHlCdWZm
ZXJUb0J1ZmZlcigKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciBzb3VyY2UsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpTaXplNjQgc291cmNlT2Zmc2V0LAorICAgICAgICBXZWJHUFVJZGVudGlmaWVy
IGRlc3RpbmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zm
c2V0LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0KTsKKworICAgIHZvaWQgY29weUJ1ZmZl
clRvVGV4dHVyZSgKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIHNvdXJj
ZSwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwK
KyAgICAgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpOworCisgICAgdm9pZCBj
b3B5VGV4dHVyZVRvQnVmZmVyKAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1
cmUmIHNvdXJjZSwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIGRlc3Rp
bmF0aW9uLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAg
ICB2b2lkIGNvcHlUZXh0dXJlVG9UZXh0dXJlKAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdl
Q29weVRleHR1cmUmIHNvdXJjZSwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0
dXJlJiBkZXN0aW5hdGlvbiwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNp
emUpOworCisgICAgdm9pZCBmaWxsQnVmZmVyKAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyIGRl
c3RpbmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0
LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0KTsKKworICAgIHZvaWQgcHVzaERlYnVnR3Jv
dXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAg
dm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lk
IHdyaXRlVGltZXN0YW1wKFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVl
cnlJbmRleCk7CisKKyAgICB2b2lkIHJlc29sdmVRdWVyeVNldCgKKyAgICAgICAgV2ViR1BVSWRl
bnRpZmllciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFF1ZXJ5LAorICAgICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5Q291bnQsCisgICAgICAgIFdlYkdQVUlkZW50aWZp
ZXIgZGVzdGluYXRpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25P
ZmZzZXQpOworCisgICAgdm9pZCBmaW5pc2goY29uc3QgV2ViR1BVOjpDb21tYW5kQnVmZmVyRGVz
Y3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcm
Jik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPiBtX2JhY2tpbmc7Cisg
ICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRF
bmNvZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzBiZjMz
MTE0OGQyZTk1MzFjNTk3Y2I5Y2RkZDYxNzNiN2QyOWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQ29tbWFuZEVuY29kZXIgTm90UmVmQ291bnRl
ZCBTdHJlYW0geworICAgIHZvaWQgQmVnaW5SZW5kZXJQYXNzKFdlYktpdDo6V2ViR1BVOjpSZW5k
ZXJQYXNzRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICB2b2lkIEJlZ2luQ29tcHV0ZVBhc3Moc3RkOjpvcHRpb25hbDxXZWJLaXQ6
OldlYkdQVTo6Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENvcHlCdWZmZXJUb0J1ZmZlcihXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgc291cmNlLCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNvdXJjZU9m
ZnNldCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6OldlYkdQVTo6
U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemUpCisgICAg
dm9pZCBDb3B5QnVmZmVyVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXIg
c291cmNlLCBXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgV2Vi
S2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZvaWQgQ29weVRleHR1cmVUb0J1
ZmZlcihXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBzb3VyY2UsIFdlYktpdDo6V2Vi
R1BVOjpJbWFnZUNvcHlCdWZmZXIgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQz
RCBjb3B5U2l6ZSkKKyAgICB2b2lkIENvcHlUZXh0dXJlVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1
cmUgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICB2
b2lkIEZpbGxCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6
OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNp
emUpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lk
IFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtl
ckxhYmVsKQorICAgIHZvaWQgV3JpdGVUaW1lc3RhbXAoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKKyAgICB2b2lkIFJl
c29sdmVRdWVyeVNldChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpX
ZWJHUFU6OlNpemUzMiBmaXJzdFF1ZXJ5LCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5Q291bnQs
IFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUEFMOjpXZWJHUFU6OlNpemU2
NCBkZXN0aW5hdGlvbk9mZnNldCkKKyAgICB2b2lkIEZpbmlzaChXZWJLaXQ6OldlYkdQVTo6Q29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQz
NTBhOWY2ZGYwMGY0NWMxYzIxNTlmYzYxYjM3YzdiZTIxZWY5MDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQ
YXNzRW5jb2Rlci5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyKFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXImIGNvbXB1dGVQ
YXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNr
aW5nKGNvbXB1dGVQYXNzRW5jb2RlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQor
eworfQorCitSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6On5SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIoKQoreworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUo
V2ViR1BVSWRlbnRpZmllciBjb21wdXRlUGlwZWxpbmUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNv
bXB1dGVQaXBlbGluZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNw
YXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNp
emUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB6KQoreworICAgIFVO
VVNFRF9QQVJBTSh4KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CisgICAgVU5VU0VEX1BBUkFNKHop
OworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZGlzcGF0Y2hJbmRpcmVjdChX
ZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGly
ZWN0T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5V
U0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciBxdWVy
eVNldCwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQoreworICAgIFVOVVNFRF9QQVJB
TShxdWVyeVNldCk7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5SW5kZXgpOworfQorCit2b2lkIFJl
bW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQorewor
fQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCit7Cit9CisKK3Zv
aWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6Oklu
ZGV4MzIgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgYmluZEdyb3VwLAorICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBvZmZzZXRzKQor
eworICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGJpbmRHcm91cCk7
CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldHMpOworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcjo6cHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCkKK3sKKyAgICBVTlVT
RURfUEFSQU0oZ3JvdXBMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVy
Ojpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6
Omluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9Q
QVJBTShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpz
ZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3YWZiZDhl
OWM1NGVmNjI0NzFmZDA4NGQzMTI2ZjgxZjEyOGVjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5j
b2Rlci5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7Citj
bGFzcyBDb21wdXRlUGFzc0VuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1l
c3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUNvbXB1
dGVQYXNzRW5jb2RlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI+IGNyZWF0
ZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyJiBjb21wdXRlUGFzc0VuY29kZXIsIFdl
YkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcihjb21wdXRlUGFzc0VuY29kZXIsIG9i
amVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJl
bW90ZUNvbXB1dGVQYXNzRW5jb2RlcihQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyJiwg
V2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoY29u
c3QgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0
ZVBhc3NFbmNvZGVyKFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXImIG9wZXJh
dG9yPShSZW1vdGVDb21wdXRlUGFzc0VuY29kZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRp
ZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UGlwZWxpbmUoV2ViR1BVSWRlbnRp
Zmllcik7CisgICAgdm9pZCBkaXNwYXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPik7CisgICAgdm9pZCBkaXNwYXRjaEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5k
aXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpOworCisgICAg
dm9pZCBiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6
V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCk7CisgICAgdm9pZCBlbmRQaXBlbGluZVN0YXRpc3Rp
Y3NRdWVyeSgpOworCisgICAgdm9pZCBlbmRQYXNzKCk7CisKKyAgICB2b2lkIHNldEJpbmRHcm91
cChQQUw6OldlYkdQVTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmKTsKKwor
ICAgIHZvaWQgcHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBw
b3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJr
ZXJMYWJlbCk7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6
T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YmQyYjU3MmNiYTU0
MTFhMjNjMjljOTdkMDdjYzZjMGMwZWMyZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIE5vdFJlZkNvdW50
ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldFBpcGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgIHZvaWQgRGlzcGF0Y2goUEFMOjpXZWJHUFU6OlNpemUzMiB4LCBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHksIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemUzMj4geikKKyAgICB2b2lkIERpc3BhdGNoSW5kaXJlY3QoV2ViS2l0OjpXZWJH
UFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0
T2Zmc2V0KQorICAgIHZvaWQgQmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4
KQorICAgIHZvaWQgRW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQorICAgIHZvaWQgRW5kUGFz
cygpCisgICAgdm9pZCBTZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgsIFdl
YktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQ
QUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+IGR5bmFtaWNPZmZzZXRzKQorICAgIHZv
aWQgUHVzaERlYnVnR3JvdXAoU3RyaW5nIGdyb3VwTGFiZWwpCisgICAgdm9pZCBQb3BEZWJ1Z0dy
b3VwKCkKKyAgICB2b2lkIEluc2VydERlYnVnTWFya2VyKFN0cmluZyBtYXJrZXJMYWJlbCkKKyAg
ICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBl
bGluZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI5ZDkwOTQ4MTkyYzRiZjAwMzQxY2Y4
YmU2OGY0NmZkZTRjZmRhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZUNvbXB1dGVQaXBlbGluZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVDb21w
dXRlUGlwZWxpbmU6OlJlbW90ZUNvbXB1dGVQaXBlbGluZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lJiBjb21wdXRlUGlwZWxpbmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICA6IG1fYmFja2luZyhjb21wdXRlUGlwZWxpbmUpCisgICAgLCBtX29iamVjdEhlYXAob2Jq
ZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBp
cGVsaW5lKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGlwZWxpbmU6OmdldEJpbmRHcm91
cExheW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOwor
fQorCit2b2lkIFJlbW90ZUNvbXB1dGVQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlw
ZWxpbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYjM0MDQzZDc0OGZiZjdlZjZiZWEyYjMyZDUwOWU2ZjBjZjJi
MDIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQ29tcHV0ZVBpcGVsaW5lOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFw
OworfQorCitjbGFzcyBSZW1vdGVDb21wdXRlUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgSVBDOjpT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29t
cHV0ZVBpcGVsaW5lPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYgY29tcHV0
ZVBpcGVsaW5lLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVDb21wdXRlUGlwZWxpbmUoY29tcHV0ZVBpcGVs
aW5lLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQ29tcHV0ZVBp
cGVsaW5lKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAg
ICBSZW1vdGVDb21wdXRlUGlwZWxpbmUoUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYsIFdl
YkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFJl
bW90ZUNvbXB1dGVQaXBlbGluZSYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQaXBlbGlu
ZShSZW1vdGVDb21wdXRlUGlwZWxpbmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBp
cGVsaW5lJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJikgPSBkZWxldGU7
CisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJiBvcGVyYXRvcj0oUmVtb3RlQ29tcHV0ZVBpcGVs
aW5lJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6
OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICB2b2lkIGdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmll
cik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQ
VTo6Q29tcHV0ZVBpcGVsaW5lPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVh
cD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVs
aW5lLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NTlhYTU5MjM0MjkzODFkMzc2MGY1MmZiNmUz
YzQ4N2JiYWM2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
ICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMg
LT4gUmVtb3RlQ29tcHV0ZVBpcGVsaW5lIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IEdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVEZXZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4ZDBlMWRjY2ZlN2VkNzc3Mjc2NDE1
NTY0NWIxMjA5NWZlNmU4MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAKQEAgLTAsMCArMSwxNTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRGV2aWNl
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RI
ZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZURldmljZTo6UmVtb3RlRGV2aWNlKFBBTDo6V2Vi
R1BVOjpEZXZpY2UmIGRldmljZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAg
IDogbV9iYWNraW5nKGRldmljZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQorewor
fQorCitSZW1vdGVEZXZpY2U6On5SZW1vdGVEZXZpY2UoKQoreworfQorCit2b2lkIFJlbW90ZURl
dmljZTo6ZGVzdHJveSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIo
Y29uc3QgV2ViR1BVOjpCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVO
VVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVRl
eHR1cmUoY29uc3QgV2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpj
cmVhdGVTYW1wbGVyKGNvbnN0IFdlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3Jp
cHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURl
dmljZTo6aW1wb3J0RXh0ZXJuYWxUZXh0dXJlKGNvbnN0IFdlYkdQVTo6RXh0ZXJuYWxUZXh0dXJl
RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3Qg
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAg
IFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0
ZVBpcGVsaW5lTGF5b3V0KGNvbnN0IFdlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BB
UkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9p
ZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBXZWJHUFU6OkJpbmRHcm91cERl
c2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIp
OworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQ
VTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVDb21wdXRl
UGlwZWxpbmUoY29uc3QgV2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1v
dGVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5j
KGNvbnN0IFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjYWxsYmFjaykKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VE
X1BBUkFNKGlkZW50aWZpZXIpOworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3Zv
aWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQorewor
ICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmll
cik7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6
OmNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3I+JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVJlbmRlckJ1bmRsZUVu
Y29kZXIoY29uc3QgV2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciYgZGVzY3Jp
cHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShk
ZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVt
b3RlRGV2aWNlOjpjcmVhdGVRdWVyeVNldChjb25zdCBXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgUmVtb3RlRGV2aWNlOjpwdXNoRXJyb3JTY29wZShQQUw6OldlYkdQVTo6RXJyb3JGaWx0
ZXIgZXJyb3JGaWx0ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGVycm9yRmlsdGVyKTsKK30KKwor
dm9pZCBSZW1vdGVEZXZpY2U6OnBvcEVycm9yU2NvcGUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpFcnJvcj4mJik+JiYgY2FsbGJhY2spCit7CisgICAg
VU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OnNldExhYmVs
KFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZp
Y2UuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2
aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWVhMjBhNzNiYmJlNWQwNzYzODFmODcxZGYyNjJmMmQxODQ1Yzgz
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlLmgKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUVycm9yLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJy
b3JGaWx0ZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBQQUw6OldlYkdQVSB7CitjbGFzcyBEZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgV2ViR1BVIHsKK3N0cnVjdCBCaW5kR3JvdXBEZXNjcmlwdG9yOworc3RydWN0
IEJpbmRHcm91cExheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvcjsKK3N0
cnVjdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvcjsKK3N0cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOworY2xhc3MgT2JqZWN0
SGVhcDsKK3N0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgUXVlcnlTZXRE
ZXNjcmlwdG9yOworc3RydWN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yOworc3RydWN0
IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjsKK3N0cnVjdCBTYW1wbGVyRGVzY3JpcHRvcjsKK3N0
cnVjdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yOworc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yOwor
fQorCitjbGFzcyBSZW1vdGVEZXZpY2UgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlRGV2aWNlPiBjcmVhdGUo
UEFMOjpXZWJHUFU6OkRldmljZSYgZGV2aWNlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhl
YXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVEZXZpY2UoZGV2
aWNlLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgflJlbW90ZURldmljZSgpOworCitwcml2
YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlRGV2aWNlKFBB
TDo6V2ViR1BVOjpEZXZpY2UmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZURl
dmljZShjb25zdCBSZW1vdGVEZXZpY2UmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVEZXZpY2UoUmVt
b3RlRGV2aWNlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZSYgb3BlcmF0b3I9KGNvbnN0
IFJlbW90ZURldmljZSYpID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZSYgb3BlcmF0b3I9KFJl
bW90ZURldmljZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3Nh
Z2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCisgICAgdm9pZCBkZXN0cm95KCk7CisKKyAgICB2b2lkIGNyZWF0ZUJ1ZmZlcihjb25zdCBX
ZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNy
ZWF0ZVRleHR1cmUoY29uc3QgV2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50
aWZpZXIpOworICAgIHZvaWQgY3JlYXRlU2FtcGxlcihjb25zdCBXZWJHUFU6OlNhbXBsZXJEZXNj
cmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBpbXBvcnRFeHRlcm5hbFRleHR1
cmUoY29uc3QgV2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRp
Zmllcik7CisKKyAgICB2b2lkIGNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXZWJHUFU6OkJp
bmRHcm91cExheW91dERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNy
ZWF0ZVBpcGVsaW5lTGF5b3V0KGNvbnN0IFdlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
JiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVCaW5kR3JvdXAoY29uc3QgV2Vi
R1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lk
IGNyZWF0ZVNoYWRlck1vZHVsZShjb25zdCBXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3Im
LCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25z
dCBXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVDb21wdXRl
UGlwZWxpbmVBc3luYyhjb25zdCBXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBX
ZWJHUFVJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworCisgICAgdm9pZCBjcmVhdGVDb21tYW5kRW5jb2Rlcihjb25zdCBzdGQ6Om9w
dGlvbmFsPFdlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiYsIFdlYkdQVUlkZW50aWZp
ZXIpOworICAgIHZvaWQgY3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBXZWJHUFU6OlJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2
b2lkIGNyZWF0ZVF1ZXJ5U2V0KGNvbnN0IFdlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yJiwgV2Vi
R1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpF
cnJvckZpbHRlcik7CisgICAgdm9pZCBwb3BFcnJvclNjb3BlKFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkdQVTo6RXJyb3I+JiYpPiYmKTsKKworICAgIHZvaWQg
c2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+IG1fYmFj
a2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
RGV2aWNlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQwN2VjZjI3MjllZDUz
ODcxMmVmNzgxMjQ2MTQwYjU1NWFlY2E2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsNDggQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICog
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNz
YWdlcyAtPiBSZW1vdGVEZXZpY2UgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgRGVz
dHJveSgpCisgICAgdm9pZCBDcmVhdGVCdWZmZXIoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2Ny
aXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgdm9pZCBDcmVhdGVUZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciBk
ZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lk
IENyZWF0ZVNhbXBsZXIoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yIGRlc2NyaXB0
b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgSW1wb3J0
RXh0ZXJuYWxUZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZv
aWQgQ3JlYXRlQmluZEdyb3VwTGF5b3V0KFdlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXRE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQorICAgIHZvaWQgQ3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViS2l0OjpXZWJHUFU6OlBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICB2b2lkIENyZWF0ZUJpbmRHcm91cChXZWJLaXQ6OldlYkdQVTo6QmluZEdy
b3VwRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICB2b2lkIENyZWF0ZVNoYWRlck1vZHVsZShXZWJLaXQ6OldlYkdQVTo6U2hhZGVy
TW9kdWxlRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICB2b2lkIENyZWF0ZUNvbXB1dGVQaXBlbGluZShXZWJLaXQ6OldlYkdQVTo6
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYktpdDo6
V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVDb21wdXRlUGlwZWxpbmVB
c3luYyhXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9y
LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3luY2hyb25vdXMK
KyAgICB2b2lkIENyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoV2ViS2l0OjpXZWJHUFU6OlJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikgLT4gKCkgU3luY2hyb25vdXMKKyAgICB2b2lkIENyZWF0ZUNvbW1hbmRFbmNv
ZGVyKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRv
cj4gZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBDcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJCdW5k
bGVFbmNvZGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVF1ZXJ5U2V0KFdlYktpdDo6V2ViR1BVOjpRdWVy
eVNldERlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCisgICAgdm9pZCBQdXNoRXJyb3JTY29wZShQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXIg
ZXJyb3JGaWx0ZXIpCisgICAgdm9pZCBQb3BFcnJvclNjb3BlKCkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViS2l0OjpXZWJHUFU6OkVycm9yPiBlcnJvcikgU3luY2hyb25vdXMKKyAgICB2b2lkIFNldExh
YmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4
dHVyZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhiYzRkOTdiNWYwYjg3ZmU5MTZiZDcwNTNjZDQzZDg0NTdh
Njk3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUV4dGVybmFsVGV4
dHVyZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2Jq
ZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxU
ZXh0dXJlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVFeHRlcm5hbFRleHR1cmU6
OlJlbW90ZUV4dGVybmFsVGV4dHVyZShQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlJiBleHRl
cm5hbFRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFj
a2luZyhleHRlcm5hbFRleHR1cmUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sK
K30KKworUmVtb3RlRXh0ZXJuYWxUZXh0dXJlOjp+UmVtb3RlRXh0ZXJuYWxUZXh0dXJlKCkKK3sK
K30KKwordm9pZCBSZW1vdGVFeHRlcm5hbFRleHR1cmU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVs
KQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxU
ZXh0dXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZjZGUzZDc4ZGQyM2Q1ZGQ4MDNlZTUzY2I2OTQ0YzhmOGE4
NWMzZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEV4dGVybmFsVGV4dHVyZTsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVh
cDsKK30KKworY2xhc3MgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIGZpbmFsIDogcHVibGljIElQQzo6
U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUV4
dGVybmFsVGV4dHVyZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmIGV4dGVy
bmFsVGV4dHVyZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKGV4dGVybmFsVGV4
dHVyZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUV4dGVybmFs
VGV4dHVyZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisg
ICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmLCBX
ZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZShjb25zdCBS
ZW1vdGVFeHRlcm5hbFRleHR1cmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVFeHRlcm5hbFRleHR1
cmUoUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFs
VGV4dHVyZSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUV4dGVybmFsVGV4dHVyZSYpID0gZGVsZXRl
OworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZSYgb3BlcmF0b3I9KFJlbW90ZUV4dGVybmFsVGV4
dHVyZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBD
OjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisg
ICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkV4dGVy
bmFsVGV4dHVyZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2Jq
ZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZGVkMjc4ZmYyOTI0YzI0MzA0YjBlMjNhMmYwM2FkOWViODgw
NDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBA
QAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICog
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90
ZUV4dGVybmFsVGV4dHVyZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJl
bChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkNDBm
NTA1YmNiNDA2MzU2MzRjOTY1ZmRmYWJmYWMxYjA3MjQ4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVHUFUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlR1BVOjpSZW1vdGVHUFUoUEFMOjpXZWJH
UFU6OkdQVSYgZ3B1LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2Jh
Y2tpbmcoZ3B1KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90
ZUdQVTo6flJlbW90ZUdQVSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRl
cihjb25zdCBXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyYgb3B0aW9ucywgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmLCBXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJiYs
IFdlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9Q
QVJBTShvcHRpb25zKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU0OTJkMjljMjU2ZGI2OTI2OGViOGNmY2VjYjE5NjY2NTJiYTM2ZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUdQVS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBw
b3J0ZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0cy5oIgorI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKwor
bmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEdQVTsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBSZXF1
ZXN0QWRhcHRlck9wdGlvbnM7Cit9CisKK2NsYXNzIFJlbW90ZUdQVSBmaW5hbCA6IHB1YmxpYyBJ
UEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1v
dGVHUFU+IGNyZWF0ZShQQUw6OldlYkdQVTo6R1BVJiBncHUsIFdlYkdQVTo6T2JqZWN0SGVhcCYg
b2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUdQ
VShncHUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVHUFUoKTsK
KworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUdQ
VShQQUw6OldlYkdQVTo6R1BVJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVH
UFUoY29uc3QgUmVtb3RlR1BVJikgPSBkZWxldGU7CisgICAgUmVtb3RlR1BVKFJlbW90ZUdQVSYm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVHUFUmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVHUFUmKSA9
IGRlbGV0ZTsKKyAgICBSZW1vdGVHUFUmIG9wZXJhdG9yPShSZW1vdGVHUFUmJikgPSBkZWxldGU7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgcmVxdWVzdEFk
YXB0ZXIoY29uc3QgV2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnMmLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nJiYsIFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2Vi
R1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpHUFU+
IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlR1BVLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY1OGU3ZjVjN2NlNDE2
N2NjZDM0ZDU5MWQ1YjJmMTJlZTYxN2E3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdl
cyAtPiBSZW1vdGVHUFUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgUmVxdWVzdEFk
YXB0ZXIoV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyBvcHRpb25zKSAtPiAo
U3RyaW5nIG5hbWUsIFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyBzdXBwb3J0ZWRG
ZWF0dXJlcywgV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyBzdXBwb3J0ZWRMaW1pdHMp
IFN5bmNocm9ub3VzCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMTBmYWRmZTY2YzQ4NTA3NWU5MTZkNTg2Mjg2MDVjZmQ1NDQzYzVmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVQaXBlbGluZUxheW91dC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVQaXBlbGluZUxheW91dC5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVBpcGVsaW5lTGF5b3V0OjpSZW1vdGVQaXBl
bGluZUxheW91dChQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0LCBX
ZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocGlwZWxpbmVM
YXlvdXQpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUGlw
ZWxpbmVMYXlvdXQ6On5SZW1vdGVQaXBlbGluZUxheW91dCgpCit7Cit9CisKK3ZvaWQgUmVtb3Rl
UGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9Q
QVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRjZTlkYTUwZTkwNDQyZDEyMzI0MjU4NjhmOTQ5MmRjMDViZWZmMmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVs
aW5lTGF5b3V0LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKK2NsYXNzIFBpcGVsaW5lTGF5b3V0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
bmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVQ
aXBlbGluZUxheW91dCBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVQaXBlbGluZUxheW91dD4gY3JlYXRlKFBB
TDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQsIFdlYkdQVTo6T2JqZWN0
SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZVBpcGVsaW5lTGF5b3V0KHBpcGVsaW5lTGF5b3V0LCBvYmplY3RIZWFwKSk7CisgICAgfQor
CisgICAgdmlydHVhbCB+UmVtb3RlUGlwZWxpbmVMYXlvdXQoKTsKKworcHJpdmF0ZToKKyAgICBm
cmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVBpcGVsaW5lTGF5b3V0KFBBTDo6
V2ViR1BVOjpQaXBlbGluZUxheW91dCYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVt
b3RlUGlwZWxpbmVMYXlvdXQoY29uc3QgUmVtb3RlUGlwZWxpbmVMYXlvdXQmKSA9IGRlbGV0ZTsK
KyAgICBSZW1vdGVQaXBlbGluZUxheW91dChSZW1vdGVQaXBlbGluZUxheW91dCYmKSA9IGRlbGV0
ZTsKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dCYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVBpcGVs
aW5lTGF5b3V0JikgPSBkZWxldGU7CisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQmIG9wZXJhdG9y
PShSZW1vdGVQaXBlbGluZUxheW91dCYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2
ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6
T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBl
bGluZUxheW91dC5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDgzNGY4ZTFmYjlkMTU3MjMzMmNl
MmU2MmJhYjZhMzgxODJmYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAq
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVz
c2FnZXMgLT4gUmVtb3RlUGlwZWxpbmVMYXlvdXQgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAg
IHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNl
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTBjM2I5NzhlOTI5YjM1YzliOTA1YjkyYjk0NTRiMzdlMDJiM2U5
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUXVlcnlTZXQuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUXVlcnlTZXQuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0Lmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitSZW1vdGVRdWVyeVNldDo6UmVtb3RlUXVlcnlTZXQoUEFMOjpXZWJHUFU6OlF1
ZXJ5U2V0JiBxdWVyeVNldCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDog
bV9iYWNraW5nKHF1ZXJ5U2V0KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9
CisKK1JlbW90ZVF1ZXJ5U2V0Ojp+UmVtb3RlUXVlcnlTZXQoKQoreworfQorCit2b2lkIFJlbW90
ZVF1ZXJ5U2V0OjpkZXN0cm95KCkKK3sKK30KKwordm9pZCBSZW1vdGVRdWVyeVNldDo6c2V0TGFi
ZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXJ5U2V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVF1ZXJ5U2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY1MDJlYjgxNzU0YjU3Y2JhYTA3OTQyOWMyOGU0ZGU0
NWU3NjkwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUXVlcnlTZXQ7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2Ns
YXNzIFJlbW90ZVF1ZXJ5U2V0IGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2Vp
dmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVF1ZXJ5U2V0PiBjcmVhdGUoUEFM
OjpXZWJHUFU6OlF1ZXJ5U2V0JiBxdWVyeVNldCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RI
ZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUXVlcnlTZXQo
cXVlcnlTZXQsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVRdWVy
eVNldCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAg
UmVtb3RlUXVlcnlTZXQoUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiwgV2ViR1BVOjpPYmplY3RIZWFw
Jik7CisKKyAgICBSZW1vdGVRdWVyeVNldChjb25zdCBSZW1vdGVRdWVyeVNldCYpID0gZGVsZXRl
OworICAgIFJlbW90ZVF1ZXJ5U2V0KFJlbW90ZVF1ZXJ5U2V0JiYpID0gZGVsZXRlOworICAgIFJl
bW90ZVF1ZXJ5U2V0JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUXVlcnlTZXQmKSA9IGRlbGV0ZTsK
KyAgICBSZW1vdGVRdWVyeVNldCYgb3BlcmF0b3I9KFJlbW90ZVF1ZXJ5U2V0JiYpID0gZGVsZXRl
OworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNv
bm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGRlc3Ryb3ko
KTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BV
OjpRdWVyeVNldD4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2Jq
ZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTdhODI2MDM0MGVhYmU5ZjIwMzYyNjgwMTNhMDIwNjllMGZiNDdlMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVlcnlTZXQubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorLyogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVF1ZXJ5U2V0IE5vdFJlZkNvdW50
ZWQgU3RyZWFtIHsKKyAgICB2b2lkIERlc3Ryb3koKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5n
IGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGExMTY1MTgz
NTUxM2UwOWNhNjc2ODY0NGI3ODA2Yzg4NjNlMTQ0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuY3BwCkBAIC0w
LDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVtb3RlUXVldWUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1
ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVRdWV1ZTo6UmVtb3RlUXVldWUo
UEFMOjpXZWJHUFU6OlF1ZXVlJiBxdWV1ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFw
KQorICAgIDogbV9iYWNraW5nKHF1ZXVlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVF1ZXVlOjp+UmVtb3RlUXVldWUoKQoreworfQorCit2b2lkIFJlbW90
ZVF1ZXVlOjpzdWJtaXQoVmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+JiYgY29tbWFuZEJ1ZmZlcnMp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGNvbW1hbmRCdWZmZXJzKTsKK30KKwordm9pZCBSZW1vdGVR
dWV1ZTo6b25TdWJtaXR0ZWRXb3JrRG9uZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjYWxsYmFjaykKK3sKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit2b2lkIFJl
bW90ZVF1ZXVlOjp3cml0ZUJ1ZmZlcigKKyAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwKKyAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwKKyAgICBWZWN0b3I8dWludDhfdD4m
JiBkYXRhKQoreworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShi
dWZmZXJPZmZzZXQpOworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKK30KKwordm9pZCBSZW1vdGVR
dWV1ZTo6d3JpdGVUZXh0dXJlKAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYg
ZGVzdGluYXRpb24sCisgICAgVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwKKyAgICBjb25zdCBXZWJH
UFU6OkltYWdlRGF0YUxheW91dCYgZGF0YUxheW91dCwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVu
dDNEJiBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VE
X1BBUkFNKGRhdGEpOworICAgIFVOVVNFRF9QQVJBTShkYXRhTGF5b3V0KTsKKyAgICBVTlVTRURf
UEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OmNvcHlFeHRlcm5hbEltYWdlVG9U
ZXh0dXJlKAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSYgc291cmNl
LAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCYgZGVzdGluYXRpb24s
CisgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpCit7CisgICAgVU5VU0VEX1BB
UkFNKHNvdXJjZSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURf
UEFSQU0oY29weVNpemUpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjpzZXRMYWJlbChTdHJpbmcm
JiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZjMwMWRhZDE1ODMzZDYxNzczMjNkNGNkYzYyNWEzZTJiZDJhY2VhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVRdWV1ZS5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7Citj
bGFzcyBRdWV1ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUg
eworc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2U7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVy
ZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkOworc3RydWN0IEltYWdlRGF0YUxheW91
dDsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVF1ZXVlIGZpbmFsIDogcHVi
bGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZVF1ZXVlPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlF1ZXVlJiBxdWV1ZSwgV2ViR1BVOjpP
YmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlUXVldWUocXVldWUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IH5SZW1vdGVRdWV1ZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFw
OworCisgICAgUmVtb3RlUXVldWUoUEFMOjpXZWJHUFU6OlF1ZXVlJiwgV2ViR1BVOjpPYmplY3RI
ZWFwJik7CisKKyAgICBSZW1vdGVRdWV1ZShjb25zdCBSZW1vdGVRdWV1ZSYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZVF1ZXVlKFJlbW90ZVF1ZXVlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXVl
JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUXVldWUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVRdWV1
ZSYgb3BlcmF0b3I9KFJlbW90ZVF1ZXVlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNl
aXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHN1Ym1pdChWZWN0b3I8V2ViR1BVSWRlbnRpZmll
cj4mJik7CisKKyAgICB2b2lkIG9uU3VibWl0dGVkV29ya0RvbmUoV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworCisgICAgdm9pZCB3cml0ZUJ1ZmZlcigKKyAgICAgICAgV2ViR1BV
SWRlbnRpZmllciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBidWZmZXJPZmZzZXQsCisg
ICAgICAgIFZlY3Rvcjx1aW50OF90PiYmKTsKKworICAgIHZvaWQgd3JpdGVUZXh0dXJlKAorICAg
ICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgICAg
ICBWZWN0b3I8dWludDhfdD4mJiwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZURhdGFMYXlv
dXQmLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBzaXplKTsKKworICAgIHZvaWQg
Y29weUV4dGVybmFsSW1hZ2VUb1RleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VD
b3B5RXh0ZXJuYWxJbWFnZSYgc291cmNlLAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmVUYWdnZWQmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVu
dDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJl
ZjxQQUw6OldlYkdQVTo6UXVldWU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RI
ZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJmNzYwYmIzMjZkNTI4OWVlNGI0YWNmMjBiY2M3OGJhNDE3MzRmNWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVF1ZXVlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzUgQEAKKy8qIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVRdWV1ZSBOb3RSZWZDb3VudGVk
IFN0cmVhbSB7CisgICAgdm9pZCBTdWJtaXQoVmVjdG9yPFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
cj4gY29tbWFuZEJ1ZmZlcnMpCisgICAgdm9pZCBPblN1Ym1pdHRlZFdvcmtEb25lKCkgLT4gKCkg
U3luY2hyb25vdXMKKyAgICB2b2lkIFdyaXRlQnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwgVmVjdG9yPHVp
bnQ4X3Q+IGRhdGEpCisgICAgdm9pZCBXcml0ZVRleHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdl
Q29weVRleHR1cmUgZGVzdGluYXRpb24sIFZlY3Rvcjx1aW50OF90PiBkYXRhLCBXZWJLaXQ6Oldl
YkdQVTo6SW1hZ2VEYXRhTGF5b3V0IGltYWdlRGF0YUxheW91dCwgV2ViS2l0OjpXZWJHUFU6OkV4
dGVudDNEIHNpemUpCisgICAgdm9pZCBDb3B5RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZShXZWJLaXQ6
OldlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSBzb3VyY2UsIFdlYktpdDo6V2ViR1BVOjpJ
bWFnZUNvcHlUZXh0dXJlVGFnZ2VkIGRlc3RpbmF0aW9uLCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50
M0QgY29weVNpemUpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVSZW5kZXJCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NDA1NzllMmQ5MGU2
YWIwMTlmMzVkMGI5NjcxNGU5MTM2ODM4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHAKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVSZW5kZXJCdW5kbGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVJlbmRlckJ1bmRsZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUmVu
ZGVyQnVuZGxlOjpSZW1vdGVSZW5kZXJCdW5kbGUoUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSYg
cmVuZGVyQnVuZGxlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2Jh
Y2tpbmcocmVuZGVyQnVuZGxlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9
CisKK1JlbW90ZVJlbmRlckJ1bmRsZTo6flJlbW90ZVJlbmRlckJ1bmRsZSgpCit7Cit9CisKK3Zv
aWQgUmVtb3RlUmVuZGVyQnVuZGxlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBV
TlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNlMmFiMDRmY2IxNDU2OWZlYTNkZTViOTRkNzk1YTRjZDRiZjcyODgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlckJ1bmRsZS5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CitjbGFzcyBSZW5kZXJCdW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVJl
bmRlckJ1bmRsZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVSZW5kZXJCdW5kbGU+IGNyZWF0ZShQQUw6Oldl
YkdQVTo6UmVuZGVyQnVuZGxlJiByZW5kZXJCdW5kbGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2Jq
ZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVJlbmRl
ckJ1bmRsZShyZW5kZXJCdW5kbGUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IH5SZW1vdGVSZW5kZXJCdW5kbGUoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2Jq
ZWN0SGVhcDsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZShQQUw6OldlYkdQVTo6UmVuZGVyQnVu
ZGxlJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUoY29u
c3QgUmVtb3RlUmVuZGVyQnVuZGxlJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyQnVuZGxl
KFJlbW90ZVJlbmRlckJ1bmRsZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUm
IG9wZXJhdG9yPShjb25zdCBSZW1vdGVSZW5kZXJCdW5kbGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1v
dGVSZW5kZXJCdW5kbGUmIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJCdW5kbGUmJikgPSBkZWxldGU7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwo
U3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGU+IG1fYmFja2lu
ZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDMxMjI2
Y2Y3ZjgxMGZlZDBjNzk0ZjAwMmI3ZmVjMjc3NDM4NTAwMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxl
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJCdW5kbGUgTm90UmVmQ291bnRlZCBT
dHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNjUy
N2YyZmY5OTk0ODM1NTRlNTlkZjhkNDVmZGJmZWNkY2I5YjMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OlJlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXIoUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXImIHJlbmRl
ckJ1bmRsZUVuY29kZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1f
YmFja2luZyhyZW5kZXJCdW5kbGVFbmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhl
YXApCit7Cit9CisKK1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6On5SZW1vdGVSZW5kZXJCdW5k
bGVFbmNvZGVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRQ
aXBlbGluZShXZWJHUFVJZGVudGlmaWVyIHJlbmRlclBpcGVsaW5lKQoreworICAgIFVOVVNFRF9Q
QVJBTShyZW5kZXJQaXBlbGluZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6c2V0SW5kZXhCdWZmZXIoV2ViR1BVSWRlbnRpZmllciBidWZmZXIsIFBBTDo6V2ViR1BVOjpJ
bmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0o
YnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kZXhGb3JtYXQpOworICAgIFVOVVNFRF9QQVJB
TShvZmZzZXQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJCdW5kbGVFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xv
dCwgV2ViR1BVSWRlbnRpZmllciBidWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCit7CisgICAgVU5VU0VEX1BB
UkFNKHNsb3QpOworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShv
ZmZzZXQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyOjpkcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6
V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZp
cnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7CisgICAgVU5V
U0VEX1BBUkFNKHZlcnRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VDb3VudCk7
CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0VmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJ
bnN0YW5jZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJhd0luZGV4
ZWQoUEFMOjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGlu
c3RhbmNlQ291bnQsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LAorICAgIFBB
TDo6V2ViR1BVOjpTaWduZWRPZmZzZXQzMiBiYXNlVmVydGV4LAorICAgIFBBTDo6V2ViR1BVOjpT
aXplMzIgZmlyc3RJbnN0YW5jZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kZXhDb3VudCk7Cisg
ICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdElu
ZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZVZlcnRleCk7CisgICAgVU5VU0VEX1BBUkFNKGZp
cnN0SW5zdGFuY2UpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRyYXdJ
bmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6
ZTY0IGluZGlyZWN0T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7
CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5k
aXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RP
ZmZzZXQpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91
cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViR1BVSWRlbnRpZmllciBiaW5kR3JvdXAs
CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZz
ZXQ+PiYmIGR5bmFtaWNPZmZzZXRzKQoreworICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CisgICAg
VU5VU0VEX1BBUkFNKGJpbmRHcm91cCk7CisgICAgVU5VU0VEX1BBUkFNKGR5bmFtaWNPZmZzZXRz
KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwdXNoRGVidWdHcm91cChT
dHJpbmcmJiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcihTdHJp
bmcmJiBtYXJrZXJMYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obWFya2VyTGFiZWwpOworfQor
Cit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmZpbmlzaChjb25zdCBXZWJHUFU6OlJl
bmRlckJ1bmRsZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFN
KGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldExh
YmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmY5ODUyMjEw
NDc3NDc1MmEwZDUxZDUzN2U2ZDU2MjdjN2I5OWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNv
ZGVyLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3Mg
UmVuZGVyQnVuZGxlRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFj
ZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yOworfQorCitjbGFzcyBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyIGZpbmFsIDogcHVibGlj
IElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
RW5jb2RlciYgcmVuZGVyQnVuZGxlRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RI
ZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2RlcihyZW5kZXJCdW5kbGVFbmNvZGVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisg
ICAgflJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQg
Y2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoUEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAg
IFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoY29uc3QgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rl
ciYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2RlciYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVy
JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXImIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJCdW5k
bGVFbmNvZGVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2Fn
ZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7
CisKKyAgICB2b2lkIHNldFBpcGVsaW5lKFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBz
ZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQs
IFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
aXplNjQ+KTsKKyAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBz
bG90LCBXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0Pik7CisKKyAgICB2b2lkIGRyYXcoUEFMOjpXZWJH
UFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50
LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6
U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworICAgIHZvaWQgZHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6
OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXpl
MzIgZmlyc3RJbnN0YW5jZSk7CisKKyAgICB2b2lkIGRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlm
aWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsK
KyAgICB2b2lkIGRyYXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1
ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAgICB2b2lkIHNl
dEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmllciwKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+
PiYmIGR5bmFtaWNPZmZzZXRzKTsKKworICAgIHZvaWQgcHVzaERlYnVnR3JvdXAoU3RyaW5nJiYg
Z3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9pZCBpbnNlcnRE
ZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lkIGZpbmlzaChjb25z
dCBXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5k
ZXJCdW5kbGVFbmNvZGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4g
bV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNmN2NmOTAzNzBjYzY3MjkxNGYxZjIy
ZTEzNDA4N2ZhOWRlMTJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDQyIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
bWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciBOb3RSZWZDb3VudGVkIFN0cmVh
bSB7CisgICAgdm9pZCBTZXRQaXBlbGluZShXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICB2b2lkIFNldEluZGV4QnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhGb3JtYXQsIFBBTDo6V2Vi
R1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNp
emUpCisgICAgdm9pZCBTZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwg
V2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQg
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCisgICAgdm9p
ZCBEcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXpl
MzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFMOjpX
ZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGV4ZWQoUEFMOjpX
ZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291
bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwgUEFMOjpXZWJHUFU6OlNpZ25lZE9m
ZnNldDMyIGJhc2VWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkKKyAg
ICB2b2lkIERyYXdJbmRpcmVjdChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZm
ZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBEcmF3SW5k
ZXhlZEluZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFM
OjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIFNldEJpbmRHcm91cChQ
QUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zm
c2V0Pj4gZHluYW1pY09mZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChTdHJpbmcgZ3Jv
dXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5zZXJ0RGVidWdN
YXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZvaWQgRmluaXNoKFdlYktpdDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTFjOTcyOWNlMWFkMDk1ODYzZjY1MDQzMzBmOWQ1MjE1ZTY0NTkyYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRl
clBhc3NFbmNvZGVyKFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciYgcmVuZGVyUGFzc0Vu
Y29kZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhy
ZW5kZXJQYXNzRW5jb2RlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQor
CitSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6flJlbW90ZVJlbmRlclBhc3NFbmNvZGVyKCkKK3sK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoV2ViR1BVSWRl
bnRpZmllciByZW5kZXJQaXBlbGluZSkKK3sKKyAgICBVTlVTRURfUEFSQU0ocmVuZGVyUGlwZWxp
bmUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihX
ZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0IGluZGV4Rm9y
bWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6U2l6ZTY0PiBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNF
RF9QQVJBTShpbmRleEZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5V
U0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViR1BVSWRlbnRpZmllciBi
dWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaXplNjQ+IHNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKHNsb3QpOworICAgIFVOVVNF
RF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9Q
QVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyhQQUw6
OldlYkdQVTo6U2l6ZTMyIHZlcnRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNl
Q291bnQsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFMOjpXZWJHUFU6
OlNpemUzMiBmaXJzdEluc3RhbmNlKQoreworICAgIFVOVVNFRF9QQVJBTSh2ZXJ0ZXhDb3VudCk7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShmaXJz
dFZlcnRleCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5zdGFuY2UpOworfQorCit2b2lkIFJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGlu
ZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6Oldl
YkdQVTo6U2l6ZTMyIGZpcnN0SW5kZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMy
IGJhc2VWZXJ0ZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorewor
ICAgIFVOVVNFRF9QQVJBTShpbmRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VD
b3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShi
YXNlVmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGlu
ZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQoreworICAg
IFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0
T2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJ
bmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6
ZTY0IGluZGlyZWN0T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7
CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBX
ZWJHUFVJZGVudGlmaWVyIGJpbmRHcm91cCwKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6
OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdyb3VwKTsKKyAgICBV
TlVTRURfUEFSQU0oZHluYW1pY09mZnNldHMpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKQoreworICAgIFVOVVNF
RF9QQVJBTShncm91cExhYmVsKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6
cG9wRGVidWdHcm91cCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6Omlu
c2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9QQVJB
TShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFZp
ZXdwb3J0KGZsb2F0IHgsIGZsb2F0IHksCisgICAgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwK
KyAgICBmbG9hdCBtaW5EZXB0aCwgZmxvYXQgbWF4RGVwdGgpCit7CisgICAgVU5VU0VEX1BBUkFN
KHgpOworICAgIFVOVVNFRF9QQVJBTSh5KTsKKyAgICBVTlVTRURfUEFSQU0od2lkdGgpOworICAg
IFVOVVNFRF9QQVJBTShoZWlnaHQpOworICAgIFVOVVNFRF9QQVJBTShtaW5EZXB0aCk7CisgICAg
VU5VU0VEX1BBUkFNKG1heERlcHRoKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0U2Npc3NvclJlY3QoUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHgsIFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB5LAorICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29v
cmRpbmF0ZSB3aWR0aCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGhlaWdodCkKK3sK
KyAgICBVTlVTRURfUEFSQU0oeCk7CisgICAgVU5VU0VEX1BBUkFNKHkpOworICAgIFVOVVNFRF9Q
QVJBTSh3aWR0aCk7CisgICAgVU5VU0VEX1BBUkFNKGhlaWdodCk7Cit9CisKK3ZvaWQgUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXI6OnNldEJsZW5kQ29uc3RhbnQoV2ViR1BVOjpDb2xvciBjb2xvcikK
K3sKKyAgICBVTlVTRURfUEFSQU0oY29sb3IpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRTdGVuY2lsUmVmZXJlbmNlKFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWUgc3Rl
bmNpbFZhbHVlKQoreworICAgIFVOVVNFRF9QQVJBTShzdGVuY2lsVmFsdWUpOworfQorCit2b2lk
IFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KFBBTDo6V2ViR1BV
OjpTaXplMzIgcXVlcnlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlJbmRleCk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZE9jY2x1c2lvblF1ZXJ5KCkKK3sK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0YXRpc3Rp
Y3NRdWVyeShXZWJHUFVJZGVudGlmaWVyIHF1ZXJ5U2V0LCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1
ZXJ5SW5kZXgpCit7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBVTlVTRURfUEFS
QU0ocXVlcnlJbmRleCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBp
cGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlcjo6ZXhlY3V0ZUJ1bmRsZXMoVmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+JiYgcmVuZGVyQnVu
ZGxlcykKK3sKKyAgICBVTlVTRURfUEFSQU0ocmVuZGVyQnVuZGxlcyk7Cit9CisKK3ZvaWQgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBhc3MoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFS
QU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iOTNmNjg5ZTMyOWZkNjU2MTg5NjU0OGFkMWExNDk4YzIxMTA5OTFhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVDb2xvci5oIgorI2luY2x1ZGUgIldlYkdQ
VUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4
Rm9ybWF0Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5
cGVzLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVyUGFzc0VuY29kZXI7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9i
amVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyIGZpbmFsIDogcHVi
bGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NF
bmNvZGVyJiByZW5kZXJQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFw
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXIocmVuZGVyUGFzc0VuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB+UmVt
b3RlUmVuZGVyUGFzc0VuY29kZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2Jq
ZWN0SGVhcDsKKworICAgIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyKFBBTDo6V2ViR1BVOjpSZW5k
ZXJQYXNzRW5jb2RlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXIoY29uc3QgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXImKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlcihSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYmKSA9IGRl
bGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90
ZVJlbmRlclBhc3NFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXImIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
QmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRQaXBlbGluZShXZWJH
UFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc2V0SW5kZXhCdWZmZXIoV2ViR1BVSWRlbnRpZmll
ciwgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0Pik7CisgICAgdm9pZCBzZXRWZXJ0ZXhC
dWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViR1BVSWRlbnRpZmllciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4p
OworCisgICAgdm9pZCBkcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6
V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUz
MiBmaXJzdFZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKTsKKyAgICB2
b2lkIGRyYXdJbmRleGVkKFBBTDo6V2ViR1BVOjpTaXplMzIgaW5kZXhDb3VudCwgUEFMOjpXZWJH
UFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZp
cnN0SW5kZXgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaWduZWRPZmZzZXQzMiBiYXNlVmVydGV4
LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworCisgICAgdm9p
ZCBkcmF3SW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJH
UFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisgICAgdm9pZCBkcmF3SW5kZXhlZEluZGlyZWN0
KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5k
aXJlY3RPZmZzZXQpOworCisgICAgdm9pZCBzZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4
MzIsIFdlYkdQVUlkZW50aWZpZXIsCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6
V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cyk7CisKKyAgICB2
b2lkIHB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpOworICAgIHZvaWQgcG9wRGVi
dWdHcm91cCgpOworICAgIHZvaWQgaW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFi
ZWwpOworCisgICAgdm9pZCBzZXRWaWV3cG9ydChmbG9hdCB4LCBmbG9hdCB5LAorICAgICAgICBm
bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LAorICAgICAgICBmbG9hdCBtaW5EZXB0aCwgZmxvYXQg
bWF4RGVwdGgpOworCisgICAgdm9pZCBzZXRTY2lzc29yUmVjdChQQUw6OldlYkdQVTo6SW50ZWdl
ckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHksCisgICAgICAg
IFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aCwgUEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlIGhlaWdodCk7CisKKyAgICB2b2lkIHNldEJsZW5kQ29uc3RhbnQoV2ViR1BV
OjpDb2xvcik7CisgICAgdm9pZCBzZXRTdGVuY2lsUmVmZXJlbmNlKFBBTDo6V2ViR1BVOjpTdGVu
Y2lsVmFsdWUpOworCisgICAgdm9pZCBiZWdpbk9jY2x1c2lvblF1ZXJ5KFBBTDo6V2ViR1BVOjpT
aXplMzIgcXVlcnlJbmRleCk7CisgICAgdm9pZCBlbmRPY2NsdXNpb25RdWVyeSgpOworCisgICAg
dm9pZCBiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6
V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCk7CisgICAgdm9pZCBlbmRQaXBlbGluZVN0YXRpc3Rp
Y3NRdWVyeSgpOworCisgICAgdm9pZCBleGVjdXRlQnVuZGxlcyhWZWN0b3I8V2ViR1BVSWRlbnRp
Zmllcj4mJik7CisgICAgdm9pZCBlbmRQYXNzKCk7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmlu
ZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI+IG1fYmFja2lu
ZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4YjdiYWFhOGVhYzA5YjM3NWNmYmE3ODRhOWQzMjhiZGQ2YjZhZWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlclBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNTEgQEAKKy8qIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJQYXNzRW5j
b2RlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRQaXBlbGluZShXZWJLaXQ6
OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFNldEluZGV4QnVmZmVyKFdl
YktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3Jt
YXQgaW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCisgICAgdm9pZCBTZXRWZXJ0ZXhCdWZmZXIoUEFM
OjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpTaXplNjQ+IHNpemUpCisgICAgdm9pZCBEcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4
Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNp
emUzMiBmaXJzdFZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAg
IHZvaWQgRHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6Oldl
YkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRl
eCwgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpT
aXplMzIgZmlyc3RJbnN0YW5jZSkKKyAgICB2b2lkIERyYXdJbmRpcmVjdChXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RP
ZmZzZXQpCisgICAgdm9pZCBEcmF3SW5kZXhlZEluZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRp
ZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkK
KyAgICB2b2lkIFNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6
V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4gZHluYW1pY09mZnNldHMpCisgICAgdm9pZCBQ
dXNoRGVidWdHcm91cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAo
KQorICAgIHZvaWQgSW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZv
aWQgU2V0Vmlld3BvcnQoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCwgZmxvYXQgbWluRGVwdGgsIGZsb2F0IG1heERlcHRoKQorICAgIHZvaWQgU2V0U2Npc3NvclJl
Y3QoUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHgsIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSB5LCBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgd2lkdGgsIFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSBoZWlnaHQpCisgICAgdm9pZCBTZXRCbGVuZENvbnN0
YW50KFdlYktpdDo6V2ViR1BVOjpDb2xvciBjb2xvcikKKyAgICB2b2lkIFNldFN0ZW5jaWxSZWZl
cmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpCisgICAgdm9pZCBC
ZWdpbk9jY2x1c2lvblF1ZXJ5KFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKKyAgICB2
b2lkIEVuZE9jY2x1c2lvblF1ZXJ5KCkKKyAgICB2b2lkIEJlZ2luUGlwZWxpbmVTdGF0aXN0aWNz
UXVlcnkoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpT
aXplMzIgcXVlcnlJbmRleCkKKyAgICB2b2lkIEVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkK
KyAgICB2b2lkIEV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXI+
IGJ1bmRsZXMpCisgICAgdm9pZCBFbmRQYXNzKCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBs
YWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNhNDBhOTAzNjQ5OTFlYzY0ZGQzMGI0MGRkYmU3NmJiZTk3ZjE3NTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlclBpcGVsaW5lLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlclBpcGVsaW5lLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUmVuZGVyUGlwZWxpbmU6OlJlbW90ZVJlbmRlclBpcGVs
aW5lKFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSYgcmVuZGVyUGlwZWxpbmUsIFdlYkdQVTo6
T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJQaXBlbGluZSkK
KyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVSZW5kZXJQaXBl
bGluZTo6flJlbW90ZVJlbmRlclBpcGVsaW5lKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQ
aXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGlwZWxpbmU6OnNldExh
YmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJQaXBlbGluZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkZTg4ZmNhZTY5NTE4MDU4YzI0
ZjlkMWVkNzcyOTUyMWNlOTk4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmgKQEAgLTAsMCAr
MSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFJlbmRlclBp
cGVsaW5lOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7Citj
bGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVSZW5kZXJQaXBlbGluZSBmaW5hbCA6
IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZW1vdGVSZW5kZXJQaXBlbGluZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBl
bGluZSYgcmVuZGVyUGlwZWxpbmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVJlbmRlclBpcGVsaW5lKHJl
bmRlclBpcGVsaW5lLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3Rl
UmVuZGVyUGlwZWxpbmUoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVh
cDsKKworICAgIFJlbW90ZVJlbmRlclBpcGVsaW5lKFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGlu
ZSYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVyUGlwZWxpbmUoY29u
c3QgUmVtb3RlUmVuZGVyUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQaXBl
bGluZShSZW1vdGVSZW5kZXJQaXBlbGluZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQ
aXBlbGluZSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVJlbmRlclBpcGVsaW5lJikgPSBkZWxldGU7
CisgICAgUmVtb3RlUmVuZGVyUGlwZWxpbmUmIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJQaXBlbGlu
ZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAg
dm9pZCBnZXRCaW5kR3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIp
OworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6
OlJlbmRlclBpcGVsaW5lPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4g
bV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzg3OTQ3NzRlMDg2ODFkZDhkMGFiMGYxMDYyODdmZjJm
MzNjMzVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMx
IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisg
KiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVt
b3RlUmVuZGVyUGlwZWxpbmUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgR2V0Qmlu
ZEdyb3VwTGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcik7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlU2FtcGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIyNDZjOGM1NjBhNzcyYWJhZWU4MDRjNjFk
NTU4OGEwNzY1NmQxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVyLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVTYW1wbGVyOjpSZW1vdGVTYW1wbGVyKFBBTDo6V2Vi
R1BVOjpTYW1wbGVyJiBzYW1wbGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisg
ICAgOiBtX2JhY2tpbmcoc2FtcGxlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQor
eworfQorCitSZW1vdGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcigpCit7Cit9CisKK3ZvaWQgUmVt
b3RlU2FtcGxlcjo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFN
KGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4Yzk3MWUxMDY5YTFhNjY3
NWQ5YzNiMjg1ZDE2YTZmZTcxN2UyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuaApAQCAtMCwwICsxLDc0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJ
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgU2FtcGxlcjsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0
SGVhcDsKK30KKworY2xhc3MgUmVtb3RlU2FtcGxlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVh
bU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVTYW1wbGVy
PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlNhbXBsZXImIHNhbXBsZXIsIFdlYkdQVTo6T2JqZWN0SGVh
cCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZVNhbXBsZXIoc2FtcGxlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJl
bW90ZVNhbXBsZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsK
KworICAgIFJlbW90ZVNhbXBsZXIoUEFMOjpXZWJHUFU6OlNhbXBsZXImLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZVNhbXBsZXIoY29uc3QgUmVtb3RlU2FtcGxlciYpID0gZGVs
ZXRlOworICAgIFJlbW90ZVNhbXBsZXIoUmVtb3RlU2FtcGxlciYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVTYW1wbGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlU2FtcGxlciYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZVNhbXBsZXImIG9wZXJhdG9yPShSZW1vdGVTYW1wbGVyJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0
cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6U2FtcGxlcj4gbV9iYWNraW5nOworICAg
IFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVTYW1wbGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjZGFjMWI2OWNjNzZlNjI0ODkxZTg4
ZWFkOGQxZDRhNzA2ZTU1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4KQEAgLTAsMCAr
MSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAq
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFJlbW90ZVNhbXBsZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwo
U3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45N2VmMDkzZDc3OWFhNzcxZGVkZmVjZTgxZTU4ZWY4NDdlOGRjNDRkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVTaGFkZXJNb2R1bGUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlU2hhZGVyTW9kdWxlLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1JlbW90ZVNoYWRlck1vZHVsZTo6UmVtb3RlU2hhZGVyTW9kdWxlKFBB
TDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUmIHNoYWRlck1vZHVsZSwgV2ViR1BVOjpPYmplY3RIZWFw
JiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHNoYWRlck1vZHVsZSkKKyAgICAsIG1fb2Jq
ZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVTaGFkZXJNb2R1bGU6On5SZW1vdGVT
aGFkZXJNb2R1bGUoKQoreworfQorCit2b2lkIFJlbW90ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRp
b25JbmZvKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxh
dGlvbk1lc3NhZ2U+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFj
ayk7Cit9CisKK3ZvaWQgUmVtb3RlU2hhZGVyTW9kdWxlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJl
bCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVs
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZhMTIwYzBiNTM4MDkxYmE3NGRmZjQxMDMwYTFmYzk0ZDllM2I5NDIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVNoYWRlck1vZHVsZS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5o
IgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJH
UFUgeworY2xhc3MgU2hhZGVyTW9kdWxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFt
ZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVTaGFk
ZXJNb2R1bGUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlU2hhZGVyTW9kdWxlPiBjcmVhdGUoUEFMOjpXZWJH
UFU6OlNoYWRlck1vZHVsZSYgc2hhZGVyTW9kdWxlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVj
dEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVTaGFkZXJN
b2R1bGUoc2hhZGVyTW9kdWxlLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+
UmVtb3RlU2hhZGVyTW9kdWxlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVj
dEhlYXA7CisKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUoUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVs
ZSYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlU2hhZGVyTW9kdWxlKGNvbnN0
IFJlbW90ZVNoYWRlck1vZHVsZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVNoYWRlck1vZHVsZShS
ZW1vdGVTaGFkZXJNb2R1bGUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxlJiBv
cGVyYXRvcj0oY29uc3QgUmVtb3RlU2hhZGVyTW9kdWxlJikgPSBkZWxldGU7CisgICAgUmVtb3Rl
U2hhZGVyTW9kdWxlJiBvcGVyYXRvcj0oUmVtb3RlU2hhZGVyTW9kdWxlJiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGNvbXBpbGF0aW9u
SW5mbyhXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkdQVTo6Q29tcGlsYXRp
b25NZXNzYWdlPiYmKT4mJik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAg
IFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQ
VTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hh
ZGVyTW9kdWxlLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljODNhZTZmNWEyZjQxYTY5Nzk0Zjkx
MWJjMWNjNWVhNDEyNzg1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2Fn
ZXMgLT4gUmVtb3RlU2hhZGVyTW9kdWxlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IENvbXBpbGF0aW9uSW5mbygpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9u
TWVzc2FnZT4gbWVzc2FnZXMpIFN5bmNocm9ub3VzCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcg
bGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhmZDI0
ZGMzYTUyMzJmMDQ5MWQ2ZGU5NDg1Y2E4ZWFiODgzMWY0YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAK
QEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVUZXh0dXJlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVUZXh0dXJlOjpS
ZW1vdGVUZXh0dXJlKFBBTDo6V2ViR1BVOjpUZXh0dXJlJiB0ZXh0dXJlLCBXZWJHUFU6Ok9iamVj
dEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcodGV4dHVyZSkKKyAgICAsIG1fb2Jq
ZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVUZXh0dXJlOjp+UmVtb3RlVGV4dHVy
ZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlVGV4dHVyZTo6Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9w
dGlvbmFsPFdlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwgV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlVGV4dHVyZTo6
ZGVzdHJveSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwoU3RyaW5nJiYg
bGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhkMzVlZDI0ODlmNTc2M2FhZjI4ZjA2ZTRlZjg3NGE1ZTA2MmQyZTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVRleHR1cmUuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpX
ZWJHUFUgeworY2xhc3MgVGV4dHVyZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVz
cGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBUZXh0dXJlVmlld0Rlc2Ny
aXB0b3I7Cit9CisKK2NsYXNzIFJlbW90ZVRleHR1cmUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlVGV4dHVy
ZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpUZXh0dXJlJiB0ZXh0dXJlLCBXZWJHUFU6Ok9iamVjdEhl
YXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1v
dGVUZXh0dXJlKHRleHR1cmUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVUZXh0dXJlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7
CisKKyAgICBSZW1vdGVUZXh0dXJlKFBBTDo6V2ViR1BVOjpUZXh0dXJlJiwgV2ViR1BVOjpPYmpl
Y3RIZWFwJik7CisKKyAgICBSZW1vdGVUZXh0dXJlKGNvbnN0IFJlbW90ZVRleHR1cmUmKSA9IGRl
bGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlKFJlbW90ZVRleHR1cmUmJikgPSBkZWxldGU7CisgICAg
UmVtb3RlVGV4dHVyZSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVRleHR1cmUmKSA9IGRlbGV0ZTsK
KyAgICBSZW1vdGVUZXh0dXJlJiBvcGVyYXRvcj0oUmVtb3RlVGV4dHVyZSYmKSA9IGRlbGV0ZTsK
KworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBjcmVhdGVWaWV3
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiwgV2Vi
R1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGRlc3Ryb3koKTsKKworICAgIHZvaWQgc2V0TGFi
ZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPiBtX2JhY2tpbmc7
CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNmZTlmNjBkY2I5OTY0YmVj
NThlZTAxMDM3ZjllZmQ2M2U5YTZmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDMyIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2Fn
ZXMgLT4gUmVtb3RlVGV4dHVyZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBDcmVh
dGVWaWV3KHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRv
cj4gZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBEZXN0cm95KCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVRleHR1cmVWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYTRhNzg2MzZhZmJl
MWFiYmRiMjYzODViY2Y4ODg4NTExNTJjZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcApAQCAt
MCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlbW90ZVRleHR1cmVWaWV3LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlVmlldy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlVGV4dHVy
ZVZpZXc6OlJlbW90ZVRleHR1cmVWaWV3KFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyYgdGV4dHVy
ZVZpZXcsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyh0
ZXh0dXJlVmlldykKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1v
dGVUZXh0dXJlVmlldzo6flJlbW90ZVRleHR1cmVWaWV3KCkKK3sKK30KKwordm9pZCBSZW1vdGVU
ZXh0dXJlVmlldzo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFN
KGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAwNWZjYWRi
ZTQ3NzE4ZGQ5ZDA5YWQ0Mzk0OTYxZDczNTBkZGQyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuaApA
QCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNs
dWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3Mg
VGV4dHVyZVZpZXc7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BV
IHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVRleHR1cmVWaWV3IGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZVRleHR1cmVWaWV3PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
JiB0ZXh0dXJlVmlldywgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlVGV4dHVyZVZpZXcodGV4dHVyZVZpZXcs
IG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVUZXh0dXJlVmlldygp
OworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3Rl
VGV4dHVyZVZpZXcoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3JiwgV2ViR1BVOjpPYmplY3RIZWFw
Jik7CisKKyAgICBSZW1vdGVUZXh0dXJlVmlldyhjb25zdCBSZW1vdGVUZXh0dXJlVmlldyYpID0g
ZGVsZXRlOworICAgIFJlbW90ZVRleHR1cmVWaWV3KFJlbW90ZVRleHR1cmVWaWV3JiYpID0gZGVs
ZXRlOworICAgIFJlbW90ZVRleHR1cmVWaWV3JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlVGV4dHVy
ZVZpZXcmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlVmlldyYgb3BlcmF0b3I9KFJlbW90
ZVRleHR1cmVWaWV3JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVz
c2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQ
VTo6VGV4dHVyZVZpZXc+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBt
X29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAwZmRiYjAwMzA4N2YzZmNjOGZhNDAwYzA0MjNjMWI0NzI0OTY2OWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmVWaWV3Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVUZXh0dXJl
VmlldyBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFi
ZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYw
ZTk0ZjZjMjEwYjBiMGMwOWFhZmE4OTY2NDdlZDFmZjc2OTU5NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVh
cC5jcHAKQEAgLTAsMCArMSwyMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFUuaD4KKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNv
bW1hbmRCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1h
bmRFbmNvZGVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRl
UGFzc0VuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1
dGVQaXBlbGluZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNl
Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dC5o
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlTZXQuaD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmg+CisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmg+CisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVU2hhZGVyTW9kdWxlLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0
dXJlVmlldy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitPYmplY3RIZWFwOjpP
YmplY3RIZWFwKCkKK3sKK30KKworT2JqZWN0SGVhcDo6fk9iamVjdEhlYXAoKQoreworfQorCitj
b25zdCBQQUw6OldlYkdQVTo6QWRhcHRlciogT2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpB
ZGFwdGVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QWRhcHRlcj4+KGl0ZXJhdG9yLT52YWx1
ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIE9iamVjdEhlYXA6
OmNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAg
IGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRp
dmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpC
aW5kR3JvdXA+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQ
VTo6QmluZEdyb3VwTGF5b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
QmluZEdyb3VwTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0
Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZl
ciogT2JqZWN0SGVhcDo6Y29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRp
Zmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OkJ1ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tbWFuZEJ1ZmZlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJh
dG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
b2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6
OkNvbW1hbmRCdWZmZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPj4o
aXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRF
bmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0
cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkg
fHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rl
cj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZh
bHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlciog
T2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZp
bmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAh
c3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rl
cj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9y
LT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUq
IE9iamVjdEhlYXA6OmNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5k
KGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0
ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+Pihp
dGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3Rk
OjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlKiBPYmplY3RIZWFwOjpjb252
ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRl
cmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQ
QUw6OldlYkdQVTo6RGV2aWNlPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0
SGVhcDo6Y29udmVydEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAg
aWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8UEFMOjpXZWJHUFU6OkdQVT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkdQVT4+KGl0
ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxh
eW91dCogT2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMu
ZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8
ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQ+
PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
c3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1
ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpRdWVyeVNldCogT2JqZWN0SGVhcDo6
Y29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBp
ZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZl
PFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpRdWVy
eVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpR
dWV1ZSogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVu
dGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6Omhv
bGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UXVldWU+PihpdGVyYXRvci0+dmFsdWUp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6
V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6
V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVu
ZGxlRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0
ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8
UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29u
c3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1
bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9y
ID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5k
ZXJQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmpl
Y3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVu
ZGVyUGFzc0VuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rl
cj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5k
ZXJQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29i
amVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVu
ZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlw
ZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9y
LT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBPYmplY3RI
ZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmll
cikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7Cisg
ICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5h
dGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpT
YW1wbGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6
OlNoYWRlck1vZHVsZSogT2JqZWN0SGVhcDo6Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9v
YmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5l
bmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1v
ZHVsZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJhdG9yLT52
YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBPYmplY3RIZWFw
Ojpjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAg
aWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpUZXh0
dXJlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3KiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0
cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkg
fHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4+
KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBz
dGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3Pj4oaXRlcmF0b3ItPnZhbHVlKS5w
dHIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEhB
VkUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0NmQxZTUx
Nzk3YjY2YTBlMzZlNjhiN2M1MTBiYjUwMmJkMDE5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaApA
QCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx2YXJpYW50Pgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgeworCitjbGFzcyBPYmplY3RIZWFwIGZpbmFsIDogcHVibGljIFdl
YkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxPYmplY3RIZWFwPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgT2JqZWN0SGVhcCgpKTsKKyAgICB9CisKKyAgICB+T2JqZWN0SGVhcCgpOworCitwcml2YXRl
OgorICAgIE9iamVjdEhlYXAoKTsKKworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBj
b252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIGNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3Vw
TGF5b3V0KiBjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlciogY29udmVydEJ1ZmZlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BV
OjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlciog
Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7
CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1
dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQ
VTo6RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxh
eW91dCogY29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBjb252ZXJ0UXVlcnlTZXRG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQ
VTo6UXVldWUqIGNvbnZlcnRRdWV1ZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFs
OworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBjb252ZXJ0UmVu
ZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAg
IGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUqIGNvbnZlcnRSZW5kZXJCdW5kbGVGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6
UmVuZGVyUGFzc0VuY29kZXIqIGNvbnZlcnRSZW5kZXJQYXNzRW5jb2RlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBl
bGluZSogY29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBsZXIqIGNvbnZlcnRTYW1wbGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6
OlNoYWRlck1vZHVsZSogY29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBjb252ZXJ0VGV4
dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6
V2ViR1BVOjpUZXh0dXJlVmlldyogY29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgZmluYWw7CisKKyAgICB1c2luZyBPYmplY3QgPSBzdGQ6OnZhcmlhbnQ8Cisg
ICAgICAgIFJlZjxQQUw6OldlYkdQVTo6QWRhcHRlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQ
VTo6QmluZEdyb3VwPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+
LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4sCisgICAgICAgIFJlZjxQQUw6Oldl
YkdQVTo6Q29tbWFuZEJ1ZmZlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVu
Y29kZXI+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4sCisg
ICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiwKKyAgICAgICAgUmVmPFBB
TDo6V2ViR1BVOjpEZXZpY2U+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkdQVT4sCisgICAg
ICAgIFJlZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQ+LAorICAgICAgICBSZWY8UEFMOjpX
ZWJHUFU6OlF1ZXJ5U2V0PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4sCisgICAg
ICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcj4sCisgICAgICAgIFJlZjxQ
QUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5k
ZXJQYXNzRW5jb2Rlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+
LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+LAorICAgICAgICBSZWY8UEFMOjpX
ZWJHUFU6OlNoYWRlck1vZHVsZT4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4s
CisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+CisgICAgPjsKKyAgICBIYXNo
TWFwPFdlYkdQVUlkZW50aWZpZXIsIE9iamVjdD4gbV9vYmplY3RzOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2Fs
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCmluZGV4IDdlNWVkZmVkOTgwMTVhNGE0
NDMwOTg3ZDJmYTdjNzlmMzE2MDk5M2QuLmM0ZjFjYTljMmVkMjFlYTA2NWZiMTEyMTNiODQ4ZWI3
NmFjZmQ5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3IuaCIKIAorI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCmlu
ZGV4IGExMzQ0YWVhMTkzYzk4YWRlNDEyYzFlYmJkZDVjZjcyOWQ5ZjdjYjUuLjFlZmRlM2JmNzY1
YzE2M2E3NWI0NThjNGE1Njc5YmE0OGE2ZjhhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvci5oCkBAIC0zMSw2ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFz
cyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworCiBjbGFzcyBMb2NhbEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yIGZpbmFsCiAgICAgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5LmgKaW5kZXggOGY3ZDM2MzNkZDAyZDkwYTFhNTYwNGEwMDYzNGUz
MWZhNTFiNTdmYS4uMjcwZTFlYmUzMTIzNWY3Nzg2ZGYwN2I5MDAwYTFjODdhNTdkMjdiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNv
ZGVyQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaCBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKaW5kZXggZWMxMzMyNmZiMGVl
ODVkZDk2MDYyZTZhNDllMTJlMTU1NDUxNmYwNS4uODUyYzI1OGM3ZTRjMmMzMjhkNTA3YjlmNTJh
YzQ3ODU5ZjMxYmRlOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRl
LXVuaWZpZWQtc291cmNlcy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
dW5pZmllZC1zb3VyY2VzLnNoCkBAIC0xNCw3ICsxNCw3IEBAIGlmIFsgLXogIiR7QlVJTERfU0NS
SVBUU19ESVJ9IiBdOyB0aGVuCiAgICAgZmkKIGZpCiAKLVVuaWZpZWRTb3VyY2VDcHBGaWxlQ291
bnQ9MTAwCitVbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTEwMwogVW5pZmllZFNvdXJjZU1tRmls
ZUNvdW50PTgwCiAKIGlmIFsgJCMgLWVxIDAgXTsgdGhlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggOGJkMGRiMjk3YmZiNDA3NGY2ODkwMDQyZmNkYTQ3ODQ1
MGRmMDU2Ni4uMzE5NmM1Y2Y1ODZkMjRlMTA2YWYyYmFiMDFlY2I5NDJkZTFiNGYyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNTgsNiArMzU4LDcgQEAg
ZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dl
YktpdDo6VHJhbnNhY3Rpb25JRCcsCiAgICAgICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJv
bGxlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlm
aWVyJywKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpXZWJVUkxTY2hl
bWVIYW5kbGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlhSRGV2aWNlSWRlbnRpZmll
cicsCkBAIC02NzgsMjEgKzY3OSw2OSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICBoZWFkZXJfaW5mb3NfYW5kX3R5cGVzID0gY2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQog
CiAgICAgc3BlY2lhbF9jYXNlcyA9IHsKLSAgICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3dGYv
TWFjaFNlbmRSaWdodC5oPiddLAotICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKLSAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJj
ZSc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLAogICAgICAgICAnSVBDOjpT
ZW1hcGhvcmUnOiBbJyJJUENTZW1hcGhvcmUuaCInXSwKICAgICAgICAgJ0luc3BlY3Rvcjo6RXh0
ZW5zaW9uRXJyb3InOiBbJyJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIiddLAogICAgICAgICAn
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWw6OkNvbm5lY3Rpb25UeXBlJzogWyc8SmF2YVNjcmlw
dENvcmUvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmg+J10sCiAgICAgICAgICdJbnNwZWN0b3I6
Okluc3BlY3RvclRhcmdldFR5cGUnOiBbJzxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JUYXJnZXQu
aD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmll
cic6IFsnPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4nXSwKKyAgICAgICAgJ0pTQzo6TWVzc2FnZUxl
dmVsJzogWyc8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+J10sCisgICAgICAgICdKU0M6
Ok1lc3NhZ2VTb3VyY2UnOiBbJzxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKKyAg
ICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3dGYvTWFjaFNlbmRSaWdodC5oPiddLAogICAgICAg
ICAnTWVkaWFUaW1lJzogWyc8d3RmL01lZGlhVGltZS5oPiddLAogICAgICAgICAnTW9ub3Rvbmlj
VGltZSc6IFsnPHd0Zi9Nb25vdG9uaWNUaW1lLmg+J10sCisgICAgICAgICdQQUw6OlNlc3Npb25J
RCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpBZGRyZXNz
TW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQmxlbmRGYWN0b3IuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCbGVuZE9wZXJh
dGlvbic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSc6IFsnPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2Vi
R1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJ
bnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2VGbGFn
cyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyVXNhZ2UuaD4nXSwKKyAgICAg
ICAgJ1BBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZSc6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUuaD4nXSwKKyAgICAg
ICAgJ1BBTDo6V2ViR1BVOjpDb2xvcldyaXRlRmxhZ3MnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUNvbG9yV3JpdGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDb21wYXJlRnVu
Y3Rpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBhcmVGdW5jdGlvbi5oPidd
LAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGUnOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaD4nXSwKKyAgICAg
ICAgJ1BBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uJzogWyc8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+J10sCisg
ICAgICAgICdQQUw6OldlYkdQVTo6Q3VsbE1vZGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUN1bGxNb2RlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RGVwdGhCaWFzJzogWyc8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQ
QUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVRGV2aWNlTG9zdFJlYXNvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkVycm9yRmls
dGVyJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oPiddLAorICAg
ICAgICAnUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVGZWF0dXJlTmFtZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkZpbHRlck1vZGUn
OiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZpbHRlck1vZGUuaD4nXSwKKyAgICAgICAg
J1BBTDo6V2ViR1BVOjpGbGFnc0NvbnN0YW50JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RnJvbnRGYWNlJzog
Wyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaD4nXSwKKyAgICAgICAgJ1BB
TDo6V2ViR1BVOjpJbmRleDMyJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3Jh
bFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQnOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg+J10sCisgICAgICAgICdQQUw6Oldl
YkdQVTo6SW50ZWdlckNvb3JkaW5hdGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUlu
dGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpMb2FkT3AnOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUxvYWRPcC5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6
Ok1hcE1vZGVGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oPidd
LAorICAgICAgICAnUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZSc6IFsnPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lLmg+J10sCisgICAgICAg
ICdQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVQb3dlclByZWZlcmVuY2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpQcmVkZWZp
bmVkQ29sb3JTcGFjZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENv
bG9yU3BhY2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neSc6
IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpRdWVyeVR5cGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVF1ZXJ5VHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1l
c3RhbXBMb2NhdGlvbic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcExvY2F0aW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2FtcGxlTWFzayc6
IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAg
ICAnUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6
U2hhZGVyU3RhZ2VGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyU3Rh
Z2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTaWduZWRPZmZzZXQzMic6IFsnPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpX
ZWJHUFU6OlNpemUzMic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBl
cy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlNpemU2NCc6IFsnPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0
ZW5jaWxPcGVyYXRpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVy
YXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWUnOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6
V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUFjY2Vzcyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTdG9y
ZU9wJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yZU9wLmg+J10sCisgICAgICAg
ICdQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZUFzcGVjdC5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1l
bnNpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24uaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0JzogWyc8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVUZXh0dXJlRm9ybWF0Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6
VGV4dHVyZVNhbXBsZVR5cGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVT
YW1wbGVUeXBlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZVVzYWdlRmxhZ3Mn
OiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVVc2FnZS5oPiddLAorICAgICAg
ICAnUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uJzogWyc8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9y
bWF0Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGUnOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmg+J10sCisgICAgICAgICdQbGF0
Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YSc6IFsnPFdlYkNvcmUvUGxhdGZvcm1YUi5oPiddLAog
ICAgICAgICAnU2Vjb25kcyc6IFsnPHd0Zi9TZWNvbmRzLmg+J10sCisgICAgICAgICdTdHJpbmcn
OiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKICAgICAgICAgJ1VSTCc6IFsnPHd0Zi9VUkxI
YXNoLmg+J10sCiAgICAgICAgICdXYWxsVGltZSc6IFsnPHd0Zi9XYWxsVGltZS5oPiddLAotICAg
ICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCi0gICAgICAgICdQQUw6
OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkFy
Y0RhdGEnOiBbJzxXZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkJlemllckN1cnZlRGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERh
dGEuaD4nXSwKQEAgLTcwNCwxMiArNzUzLDE0IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJD
b3JlL0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLAor
ICAgICAgICAnV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJzogWyc8
V2ViQ29yZS9EaXNwbGF5TGlzdC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRNYXJr
ZXJMaW5lU3R5bGUnOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29y
a2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJzog
Wyc8V2ViQ29yZS9EcmFnRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5n
TWV0aG9kJzogWyc8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbic6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24nOiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCisg
ICAgICAgICdXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVNj
cmVlbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSc6
IFsnPFdlYkNvcmUvR2FtZXBhZFByb3ZpZGVyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpFeGNlcHRpb25EZXRhaWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9G
aWxlQ2hvb3Nlci5oPiddLApAQCAtNzM2LDggKzc4Nyw4IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBl
KHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6TGluZUpvaW4nOiBbJzxXZWJDb3JlL0dyYXBoaWNz
VHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QnOiBbJzxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5n
aW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxheWVyLmg+J10sCi0gICAg
ICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQ
cm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUv
TWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNv
cmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKQEAgLTc5NSw5ICs4NDYsOSBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OldlYkdMTG9hZFBvbGljeSc6IFsnPFdl
YkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6V2lsbENvbnRp
bnVlTG9hZGluZyc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAn
V2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnOiBbJyJEcmF3aW5nQXJlYUluZm8uaCInXSwK
LSAgICAgICAgJ1dlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VJZGVudGlmaWVyJzogWyci
SWRlbnRpZmllclR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzog
WyciRG93bmxvYWRJRC5oIiddLAogICAgICAgICAnV2ViS2l0OjpBcHBQcml2YWN5UmVwb3J0VGVz
dGluZ0RhdGEnOiBbJyJBcHBQcml2YWN5UmVwb3J0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSWRlbnRpZmllcic6IFsnIklkZW50aWZpZXJUeXBlcy5oIidd
LAogICAgICAgICAnV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9u
U3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Q2FsbERvd25sb2FkRGlkU3RhcnQnOiBbJyJE
b3dubG9hZE1hbmFnZXIuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRp
Zmllcic6IFsnIkNvbnRlbnRXb3JsZFNoYXJlZC5oIiddLApAQCAtODE4LDE1ICs4NjksNzkgQEAg
ZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OlNlbGVjdGlvblRv
dWNoJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OlRhcElkZW50aWZp
ZXInOiBbJyJJZGVudGlmaWVyVHlwZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6VGV4dENoZWNr
ZXJSZXF1ZXN0SUQnOiBbJyJJZGVudGlmaWVyVHlwZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yJzogWyciV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRv
ci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5JzogWyciV2Vi
R1BVQmluZEdyb3VwRW50cnkuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yJzogWyciV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dEVudHJ5JzogWyci
V2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BV
OjpCbGVuZENvbXBvbmVudCc6IFsnIldlYkdQVUJsZW5kQ29tcG9uZW50LmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6QmxlbmRTdGF0ZSc6IFsnIldlYkdQVUJsZW5kU3RhdGUuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nJzogWyciV2ViR1BVQnVmZmVy
QmluZGluZy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdMYXlv
dXQnOiBbJyJXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcic6IFsnIldlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uJzogWyciV2Vi
R1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNv
bG9yJzogWyciV2ViR1BVQ29sb3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb2xv
clRhcmdldFN0YXRlJzogWyciV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oIiddLAorICAgICAgICAn
V2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3InOiBbJyJXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2UnOiBbJyJXZWJH
UFVDb21waWxhdGlvbk1lc3NhZ2UuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21w
dXRlUGFzc0Rlc2NyaXB0b3InOiBbJyJXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyc6IFsn
IldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcic6IFsnIldlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0JzogWyciV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRUb0JhY2tpbmdDb250ZXh0JzogWyci
V2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpEZXB0aFN0ZW5jaWxTdGF0ZSc6IFsnIldlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvcic6IFsnIldlYkdQVURl
dmljZURlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpFcnJvcic6IFsn
IldlYkdQVUVycm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0QnOiBb
JyJXZWJHUFVFeHRlbnQzRC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFs
VGV4dHVyZUJpbmRpbmdMYXlvdXQnOiBbJyJXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlRGVzY3Jp
cHRvcic6IFsnIldlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpGcmFnbWVudFN0YXRlJzogWyciV2ViR1BVRnJhZ21lbnRTdGF0ZS5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OklkZW50aWZpZXInOiBbJyJXZWJHUFVJZGVu
dGlmaWVyLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyJzog
WyciV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6
SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSc6IFsnIldlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2Uu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJzogWyciV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkltYWdl
Q29weVRleHR1cmVUYWdnZWQnOiBbJyJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0JzogWyciV2ViR1BVSW1h
Z2VEYXRhTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVT
dGF0ZSc6IFsnIldlYkdQVU11bHRpc2FtcGxlU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6
V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSc6IFsnIldlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6T3JpZ2luMkQnOiBbJyJXZWJHUFVP
cmlnaW4yRC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjNEJzogWyciV2Vi
R1BVT3JpZ2luM0QuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpPdXRPZk1lbW9yeUVy
cm9yJzogWyciV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2UnOiBbJyJXZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yJzogWyciV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6UHJpbWl0aXZlU3RhdGUnOiBbJyJXZWJHUFVQcmltaXRpdmVTdGF0
ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlByb2dyYW1tYWJsZVN0YWdlJzogWyci
V2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpR
dWVyeVNldERlc2NyaXB0b3InOiBbJyJXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVEZXNjcmlwdG9yJzogWyciV2ViR1BV
UmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
ckRlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29s
b3JBdHRhY2htZW50JzogWyciV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
JzogWyciV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVzY3JpcHRvcic6IFsnIldlYkdQVVJlbmRl
clBhc3NEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0xheW91dCc6IFsnIldlYkdQVVJlbmRlclBhc3NMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktp
dDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzJzogWyciV2ViR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcFdyaXRlcy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvcic6IFsnIldlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyc6IFsnIldl
YkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6
OlNhbXBsZXJCaW5kaW5nTGF5b3V0JzogWyciV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvcic6IFsnIldlYkdQ
VVNhbXBsZXJEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U2hhZGVy
TW9kdWxlRGVzY3JpcHRvcic6IFsnIldlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlJzogWyciV2ViR1BVU3Rl
bmNpbEZhY2VTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlN0b3JhZ2VUZXh0
dXJlQmluZGluZ0xheW91dCc6IFsnIldlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJzogWyciV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTdXBw
b3J0ZWRMaW1pdHMnOiBbJyJXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6V2ViR1BVOjpUZXh0dXJlQmluZGluZ0xheW91dCc6IFsnIldlYkdQVVRleHR1cmVCaW5k
aW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0
b3InOiBbJyJXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcic6IFsnIldlYkdQVVRleHR1cmVWaWV3RGVzY3Jp
cHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlZhbGlkYXRpb25FcnJvcic6IFsn
IldlYkdQVVZhbGlkYXRpb25FcnJvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlZl
cnRleEF0dHJpYnV0ZSc6IFsnIldlYkdQVVZlcnRleEF0dHJpYnV0ZS5oIiddLAorICAgICAgICAn
V2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dCc6IFsnIldlYkdQVVZlcnRleEJ1ZmZl
ckxheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlJzogWyci
V2ViR1BVVmVydGV4U3RhdGUuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJDb3JlOjpDb29raWUn
OiBbJzxXZWJDb3JlL0Nvb2tpZS5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0JzogWyc8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPiddLAogICAgICAgICAnc3Ry
dWN0IFdlYkNvcmU6OlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcyc6IFsnPFdlYkNvcmUvVmlk
ZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmg+J10sCisgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpX
ZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJE
YXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRh
JzogWyciV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICdz
dHJ1Y3QgV2ViS2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGEnOiBbJyJXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKLSAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlw
dE1lc3NhZ2VIYW5kbGVyRGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBl
cy5oIiddLAogICAgICAgICAnd2VicnRjOjpXZWJLaXRFbmNvZGVkRnJhbWVJbmZvJzogWyc8d2Vi
cnRjL3Nkay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5oPicsICc8V2ViQ29yZS9MaWJXZWJSVENFbnVt
VHJhaXRzLmg+J10sCi0gICAgICAgICdQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YSc6IFsn
PFdlYkNvcmUvUGxhdGZvcm1YUi5oPiddLAotICAgICAgICAnV2ViQ29yZTo6RHluYW1pY1Jhbmdl
TW9kZSc6IFsnPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4nXSwKICAgICB9CiAKICAgICBoZWFk
ZXJzID0gW10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVC
aW5kR3JvdXBEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwRGVzY3JpcHRvci5oCmluZGV4IDBlMGViYzQ0NzYwZGU5NzI3OTkwYmM5NzFiYTEz
Mzg5NDY2MjhhZTMuLmJjY2U1YjkzODZkODlmN2MwYTEzYzhjYTUzZGQ5M2JmZTI1ZDNhZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cERlc2NyaXB0b3IuaApAQCAtMzUsNiArMzUsMzMgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIHN0cnVjdCBCaW5kR3JvdXBEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JC
YXNlIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGJpbmRHcm91cExheW91dDsKICAgICBWZWN0b3I8
QmluZEdyb3VwRW50cnk+IGVudHJpZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAg
ICAgICAgZW5jb2RlciA8PCBiaW5kR3JvdXBMYXlvdXQ7CisgICAgICAgIGVuY29kZXIgPDwgZW50
cmllczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxCaW5kR3JvdXBEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERl
c2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOwor
ICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGJp
bmRHcm91cExheW91dDsKKyAgICAgICAgZGVjb2RlciA+PiBiaW5kR3JvdXBMYXlvdXQ7CisgICAg
ICAgIGlmICghYmluZEdyb3VwTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxCaW5kR3JvdXBFbnRyeT4+IGVudHJp
ZXM7CisgICAgICAgIGRlY29kZXIgPj4gZW50cmllczsKKyAgICAgICAgaWYgKCFlbnRyaWVzKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqYmluZEdyb3VwTGF5b3V0KSwg
V1RGTW92ZSgqZW50cmllcykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwRW50cnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5k
R3JvdXBFbnRyeS5oCmluZGV4IGYzOGRkNTA2Nzc2NDkyMjZjNGQ3YTAzMGM5ZGU5Y2NiZDZkZDY2
MzMuLmQyZjQ5ZDUwODQzN2RiYzlkZmJhZDdiZWQ4NjExMzFhYzdkNGU4ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCkBAIC00
NCw2ICs0NCw1MyBAQCBzdHJ1Y3QgQmluZEdyb3VwRW50cnkgewogICAgIEJ1ZmZlckJpbmRpbmcg
YnVmZmVyQmluZGluZzsKICAgICBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgQmlu
ZGluZ1Jlc291cmNlVHlwZSB0eXBlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgYmluZGluZzsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXJCaW5kaW5nOworICAgICAgICBl
bmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3Jv
dXBFbnRyeT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRleDMyPiBiaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+
IGJpbmRpbmc7CisgICAgICAgIGlmICghYmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxCdWZmZXJCaW5kaW5nPiBidWZmZXJC
aW5kaW5nOworICAgICAgICBkZWNvZGVyID4+IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGlmICgh
YnVmZmVyQmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiBpZGVudGlmaWVyOworICAgICAgICBk
ZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAgICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxCaW5kaW5n
UmVzb3VyY2VUeXBlPiB0eXBlOworICAgICAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgICAgIGlm
ICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpiaW5kaW5nKSwgV1RGTW92ZSgqYnVmZmVyQmluZGluZyksIFdURk1v
dmUoKmlkZW50aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6
QmluZGluZ1Jlc291cmNlVHlwZSwKKyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNv
dXJjZVR5cGU6OlNhbXBsZXIsCisgICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3Vy
Y2VUeXBlOjpUZXh0dXJlVmlldywKKyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNv
dXJjZVR5cGU6OkJ1ZmZlckJpbmRpbmcsCisgICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5n
UmVzb3VyY2VUeXBlOjpFeHRlcm5hbFRleHR1cmUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaAppbmRleCA2OGJhYmVkYmI2NTM2ZDRiZDQw
YjdkNTNiNGFkOTQ2NWIzN2Y2OWViLi5iNGYwY2I0YzY2MmVmM2FmMmRhNTU4MjA5ZjJjNzA4YTUw
OWM0NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8QmluZEdyb3Vw
TGF5b3V0RW50cnk+IGVudHJpZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAg
ICAgZW5jb2RlciA8PCBlbnRyaWVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cExheW91dERlc2NyaXB0b3I+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3RE
ZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4g
b2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2Up
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPEJpbmRHcm91cExheW91dEVudHJ5Pj4gZW50cmllczsKKyAgICAgICAgZGVjb2Rl
ciA+PiBlbnRyaWVzOworICAgICAgICBpZiAoIWVudHJpZXMpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3Jp
cHRvckJhc2UpLCBXVEZNb3ZlKCplbnRyaWVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmgKaW5kZXggNDAyYTNmMDkxOTFlODU4
ZTU0ZmIzZWNhNzQ2YjlkMzg5ZDNiZjlmMC4uYjgzMGE1OTE0ODk2ZTVkZjcyNTJmZjRkMGM2MzIw
NWM1OTdkZGMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJpbmRHcm91cExheW91dEVudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmgKQEAgLTQ1LDYgKzQ1LDU3IEBAIHN0cnVjdCBC
aW5kR3JvdXBMYXlvdXRFbnRyeSB7CiAgICAgc3RkOjpvcHRpb25hbDxUZXh0dXJlQmluZGluZ0xh
eW91dD4gdGV4dHVyZTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xh
eW91dD4gc3RvcmFnZVRleHR1cmU7CiAgICAgc3RkOjpvcHRpb25hbDxFeHRlcm5hbFRleHR1cmVC
aW5kaW5nTGF5b3V0PiBleHRlcm5hbFRleHR1cmU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCBiaW5kaW5nOworICAgICAgICBlbmNvZGVyIDw8IHZpc2liaWxpdHk7CisgICAg
ICAgIGVuY29kZXIgPDwgYnVmZmVyOworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZXI7CisgICAg
ICAgIGVuY29kZXIgPDwgdGV4dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBzdG9yYWdlVGV4dHVy
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBleHRlcm5hbFRleHR1cmU7CisgICAgfQorCisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QmluZEdyb3VwTGF5b3V0
RW50cnk+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6SW5kZXgzMj4gYmluZGluZzsKKyAgICAgICAgZGVjb2RlciA+PiBi
aW5kaW5nOworICAgICAgICBpZiAoIWJpbmRpbmcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNoYWRlclN0YWdl
RmxhZ3M+IHZpc2liaWxpdHk7CisgICAgICAgIGRlY29kZXIgPj4gdmlzaWJpbGl0eTsKKyAgICAg
ICAgaWYgKCF2aXNpYmlsaXR5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8QnVmZmVyQmluZGluZ0xheW91dD4+
IGJ1ZmZlcjsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVy
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPHN0ZDo6b3B0aW9uYWw8U2FtcGxlckJpbmRpbmdMYXlvdXQ+PiBzYW1wbGVyOworICAgICAg
ICBkZWNvZGVyID4+IHNhbXBsZXI7CisgICAgICAgIGlmICghc2FtcGxlcikKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlv
bmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0Pj4gdGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiB0
ZXh0dXJlOworICAgICAgICBpZiAoIXRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTdG9yYWdlVGV4
dHVyZUJpbmRpbmdMYXlvdXQ+PiBzdG9yYWdlVGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiBz
dG9yYWdlVGV4dHVyZTsKKyAgICAgICAgaWYgKCFzdG9yYWdlVGV4dHVyZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlv
bmFsPEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+PiBleHRlcm5hbFRleHR1cmU7CisgICAg
ICAgIGRlY29kZXIgPj4gZXh0ZXJuYWxUZXh0dXJlOworICAgICAgICBpZiAoIWV4dGVybmFsVGV4
dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpiaW5kaW5nKSwgV1RGTW92ZSgqdmlzaWJpbGl0eSksIFdURk1vdmUoKmJ1
ZmZlciksIFdURk1vdmUoKnNhbXBsZXIpLCBXVEZNb3ZlKCp0ZXh0dXJlKSwgV1RGTW92ZSgqc3Rv
cmFnZVRleHR1cmUpLCBXVEZNb3ZlKCpleHRlcm5hbFRleHR1cmUpIH0gfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaAppbmRleCA5NGFjNWEyNDIwYjIzODMw
NmZkNTU5NmY1NGY1YzY4YjJiNzZiYjIyLi5lZWJmOTNlNzRiMmI3MWM1ZDZlZDQ2YTA3NjgxMDc5
OGFmY2QwOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmxlbmRDb21wb25lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmxlbmRDb21wb25lbnQuaApAQCAtMzQsNiArMzQsMzMgQEAgc3RydWN0IEJsZW5kQ29tcG9uZW50
IHsKICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb24gb3BlcmF0aW9uOwogICAgIFBBTDo6
V2ViR1BVOjpCbGVuZEZhY3RvciBzcmNGYWN0b3I7CiAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFj
dG9yIGRzdEZhY3RvcjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9wZXJh
dGlvbjsKKyAgICAgICAgZW5jb2RlciA8PCBzcmNGYWN0b3I7CisgICAgICAgIGVuY29kZXIgPDwg
ZHN0RmFjdG9yOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEJsZW5kQ29tcG9uZW50PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiBv
cGVyYXRpb247CisgICAgICAgIGRlY29kZXIgPj4gb3BlcmF0aW9uOworICAgICAgICBpZiAoIW9w
ZXJhdGlvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I+IHNyY0ZhY3RvcjsKKyAgICAgICAg
ZGVjb2RlciA+PiBzcmNGYWN0b3I7CisgICAgICAgIGlmICghc3JjRmFjdG9yKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpCbGVuZEZhY3Rvcj4gZHN0RmFjdG9yOworICAgICAgICBkZWNvZGVyID4+IGRzdEZhY3Rv
cjsKKyAgICAgICAgaWYgKCFkc3RGYWN0b3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb3BlcmF0aW9uKSwgV1RGTW92ZSgq
c3JjRmFjdG9yKSwgV1RGTW92ZSgqZHN0RmFjdG9yKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQmxlbmRTdGF0ZS5oCmluZGV4IGE0MWY1MTdiYzEyYzkxN2E5MmEyZWUxOWE2NDM4MjNi
NjRhYTJmYmYuLjllODRiYWNlOWVhOTliMzA1YTM2OTA2MmVlYmE2NTlkNjI5ZThmYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaApAQCAtMzIs
NiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBCbGVuZFN0YXRl
IHsKICAgICBCbGVuZENvbXBvbmVudCBjb2xvcjsKICAgICBCbGVuZENvbXBvbmVudCBhbHBoYTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yOworICAgICAgICBlbmNv
ZGVyIDw8IGFscGhhOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEJsZW5kU3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxCbGVuZENvbXBvbmVudD4gY29sb3I7CisgICAgICAg
IGRlY29kZXIgPj4gY29sb3I7CisgICAgICAgIGlmICghY29sb3IpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8QmxlbmRDb21wb25lbnQ+
IGFscGhhOworICAgICAgICBkZWNvZGVyID4+IGFscGhhOworICAgICAgICBpZiAoIWFscGhhKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKmNvbG9yKSwgV1RGTW92ZSgqYWxwaGEpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKaW5kZXggZDQ1OTgxZjliZDE4NTE0Yjc0MjliZWIxMmUz
NDAzOWE1OTVhZjg3YS4uMzE2YjQxNjhhMWQ5YzUxMjI4NGRhM2VmNmE2MjBhMjczNzg1OGIwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGlu
Zy5oCkBAIC0zNiw2ICszNiwzMyBAQCBzdHJ1Y3QgQnVmZmVyQmluZGluZyB7CiAgICAgV2ViR1BV
SWRlbnRpZmllciBidWZmZXI7CiAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplOworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7
CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVyOworICAgICAgICBlbmNvZGVyIDw8IG9mZnNldDsK
KyAgICAgICAgZW5jb2RlciA8PCBzaXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmc+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVy
PiBidWZmZXI7CisgICAgICAgIGRlY29kZXIgPj4gYnVmZmVyOworICAgICAgICBpZiAoIWJ1ZmZl
cikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBvZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2Zm
c2V0OworICAgICAgICBpZiAoIW9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
aXplNjQ+PiBzaXplOworICAgICAgICBkZWNvZGVyID4+IHNpemU7CisgICAgICAgIGlmICghc2l6
ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpidWZmZXIpLCBXVEZNb3ZlKCpvZmZzZXQpLCBXVEZNb3ZlKCpzaXplKSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5o
CmluZGV4IGYxZjAxNjVjNzFkY2JhYmMxM2Y0ZTI5MjUyNTZiNmMxNjRjMWJmZTguLmY5ZDExMGU0
YjBiYmU2NWIzZWY1YTI2ZGRmMWNlMzJkNDRiZGYyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaApAQCAtMzQs
NiArMzQsMzMgQEAgc3RydWN0IEJ1ZmZlckJpbmRpbmdMYXlvdXQgewogICAgIFBBTDo6V2ViR1BV
OjpCdWZmZXJCaW5kaW5nVHlwZSB0eXBlOwogICAgIGJvb2wgaGFzRHluYW1pY09mZnNldDsKICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTY0IG1pbkJpbmRpbmdTaXplOworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICAgICAgZW5jb2RlciA8PCBoYXNEeW5hbWljT2Zm
c2V0OworICAgICAgICBlbmNvZGVyIDw8IG1pbkJpbmRpbmdTaXplOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmdM
YXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ1R5cGU+IHR5cGU7CisgICAgICAgIGRlY29k
ZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc0R5bmFtaWNPZmZzZXQ7
CisgICAgICAgIGRlY29kZXIgPj4gaGFzRHluYW1pY09mZnNldDsKKyAgICAgICAgaWYgKCFoYXNE
eW5hbWljT2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG1pbkJpbmRpbmdTaXplOworICAg
ICAgICBkZWNvZGVyID4+IG1pbkJpbmRpbmdTaXplOworICAgICAgICBpZiAoIW1pbkJpbmRpbmdT
aXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpoYXNEeW5hbWljT2Zmc2V0KSwgV1RGTW92ZSgq
bWluQmluZGluZ1NpemUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1
ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZm
ZXJEZXNjcmlwdG9yLmgKaW5kZXggNmM3YTE2MGVhZDk0MWNjMDNiNzQ0ZDlhMjc0MWM4YmEyODE3
ZTk1ZC4uOWM1MzQ0YTI0YmYwZDg5ZDYxZjQ4ZDExZjZmNTc5NDVhOGYwMWMzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5o
CkBAIC0zNSw2ICszNSwzOSBAQCBzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmpl
Y3REZXNjcmlwdG9yQmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplOwogICAgIFBB
TDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzIHVzYWdlOwogICAgIGJvb2wgbWFwcGVkQXRDcmVh
dGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNv
bnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IHNp
emU7CisgICAgICAgIGVuY29kZXIgPDwgdXNhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWFwcGVk
QXRDcmVhdGlvbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxCdWZmZXJEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVj
dERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNl
OworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXpl
NjQ+IHNpemU7CisgICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzPiB1c2FnZTsKKyAgICAgICAgZGVjb2RlciA+
PiB1c2FnZTsKKyAgICAgICAgaWYgKCF1c2FnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBtYXBwZWRBdENyZWF0aW9uOwor
ICAgICAgICBkZWNvZGVyID4+IG1hcHBlZEF0Q3JlYXRpb247CisgICAgICAgIGlmICghbWFwcGVk
QXRDcmVhdGlvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnNpemUp
LCBXVEZNb3ZlKCp1c2FnZSksIFdURk1vdmUoKm1hcHBlZEF0Q3JlYXRpb24pIH0gfTsKKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKaW5kZXgg
Yjg3NjdmMGExYjA1ODdlZmU4MWMxOWE5YzYxOTEzMTk5M2YwNzk5Zi4uODRiNGIwOTc1YThkNzE5
NDk0ODg2NWFhZTcxN2VlY2UxODYwYjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCkBAIC00Nyw2ICs0Nyw1
MSBAQCBzdHJ1Y3QgQ2FudmFzQ29uZmlndXJhdGlvbiB7CiAgICAgUEFMOjpXZWJHUFU6OlByZWRl
ZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7CiAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBv
c2l0aW5nQWxwaGFNb2RlIGNvbXBvc2l0aW5nQWxwaGFNb2RlOwogICAgIHN0ZDo6b3B0aW9uYWw8
RXh0ZW50M0Q+IHNpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBkZXZp
Y2U7CisgICAgICAgIGVuY29kZXIgPDwgZm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8IHVzYWdl
OworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yU3BhY2U7CisgICAgICAgIGVuY29kZXIgPDwgY29t
cG9zaXRpbmdBbHBoYU1vZGU7CisgICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDYW52YXNDb25m
aWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gZGV2aWNlOworICAgICAgICBkZWNvZGVyID4+IGRl
dmljZTsKKyAgICAgICAgaWYgKCFkZXZpY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+
IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFRleHR1cmVVc2FnZUZsYWdzPiB1c2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiB1c2FnZTsK
KyAgICAgICAgaWYgKCF1c2FnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2U+
IGNvbG9yU3BhY2U7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3JTcGFjZTsKKyAgICAgICAgaWYg
KCFjb2xvclNwYWNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4g
Y29tcG9zaXRpbmdBbHBoYU1vZGU7CisgICAgICAgIGRlY29kZXIgPj4gY29tcG9zaXRpbmdBbHBo
YU1vZGU7CisgICAgICAgIGlmICghY29tcG9zaXRpbmdBbHBoYU1vZGUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25h
bDxFeHRlbnQzRD4+IHNpemU7CisgICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYg
KCFzaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKmRldmljZSksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKnVzYWdl
KSwgV1RGTW92ZSgqY29sb3JTcGFjZSksIFdURk1vdmUoKmNvbXBvc2l0aW5nQWxwaGFNb2RlKSwg
V1RGTW92ZSgqc2l6ZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29s
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oCmluZGV4IDA3
NTNjYzZlMDZkZDk4Y2M3YzIyYjYxNmRlZGNiZmZmNzdlNGJiZDkuLjRlMGY0MzlkZmY1YmE4YTI0
NjE1YjBiMzc4ZDExNDFhODU4YTc5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb2xvci5oCkBAIC0zNiw2ICszNiwzOSBAQCBzdHJ1Y3QgQ29sb3JEaWN0IHsKICAgICBk
b3VibGUgZzsKICAgICBkb3VibGUgYjsKICAgICBkb3VibGUgYTsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgewor
ICAgICAgICBlbmNvZGVyIDw8IHI7CisgICAgICAgIGVuY29kZXIgPDwgZzsKKyAgICAgICAgZW5j
b2RlciA8PCBiOworICAgICAgICBlbmNvZGVyIDw8IGE7CisgICAgfQorCisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29sb3JEaWN0PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiByOwor
ICAgICAgICBkZWNvZGVyID4+IHI7CisgICAgICAgIGlmICghcikKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGc7CisgICAg
ICAgIGRlY29kZXIgPj4gZzsKKyAgICAgICAgaWYgKCFnKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gYjsKKyAgICAgICAg
ZGVjb2RlciA+PiBiOworICAgICAgICBpZiAoIWIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBhOworICAgICAgICBkZWNv
ZGVyID4+IGE7CisgICAgICAgIGlmICghYSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpyKSwgV1RGTW92ZSgqZyksIFdURk1v
dmUoKmIpLCBXVEZNb3ZlKCphKSB9IH07CisgICAgfQogfTsKIAogdXNpbmcgQ29sb3IgPSBzdGQ6
OnZhcmlhbnQ8VmVjdG9yPGRvdWJsZT4sIENvbG9yRGljdD47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaAppbmRleCBmYmVlNzgx
ODRhZjNmMDlmNWE5ZjhiN2NmYjBhN2Y3ZjRjOWEzZmI3Li4yZTMwM2M0N2UwNTIxYTEyOTQ0MTRi
MDY5Y2ZlMjM3OTJkM2U2Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmgKQEAgLTM3LDYgKzM3LDMzIEBAIHN0cnVjdCBD
b2xvclRhcmdldFN0YXRlIHsKIAogICAgIHN0ZDo6b3B0aW9uYWw8QmxlbmRTdGF0ZT4gYmxlbmQ7
CiAgICAgUEFMOjpXZWJHUFU6OkNvbG9yV3JpdGVGbGFncyB3cml0ZU1hc2s7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgYmxl
bmQ7CisgICAgICAgIGVuY29kZXIgPDwgd3JpdGVNYXNrOworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbG9yVGFyZ2V0U3RhdGU+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1h
dDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxCbGVuZFN0YXRlPj4gYmxl
bmQ7CisgICAgICAgIGRlY29kZXIgPj4gYmxlbmQ7CisgICAgICAgIGlmICghYmxlbmQpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkNvbG9yV3JpdGVGbGFncz4gd3JpdGVNYXNrOworICAgICAgICBkZWNvZGVyID4+
IHdyaXRlTWFzazsKKyAgICAgICAgaWYgKCF3cml0ZU1hc2spCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZm9ybWF0KSwgV1RG
TW92ZSgqYmxlbmQpLCBXVEZNb3ZlKCp3cml0ZU1hc2spIH0gfTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCA2ZGM2
M2MzZWY0YjU2NTUxYTZkMjYzYTZmYmE2ODdiZGY2MTk0OTk2Li5hZmI2MDgzYzA1NDUxZjI1M2M3
ZDJiNWNiNmE0YmViNWVlZjJjM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMzAsNiAr
MzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPigqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9y
QmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
b2JqZWN0RGVzY3JpcHRvckJhc2UpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oCmluZGV4IGYwN2E1ZjAwNzMxOWFj
OTdkMTFjMDU1ODE0NDZjMTBlODNlMzA5ZTYuLjMzYmViMDllNmQ1ZTA0NzE2ZmQzYjhkYzZhYjUw
YzhlNzg2MmE1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmgKQEAgLTMwLDYgKzMwLDIwIEBA
CiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNj
cmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+
KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4g
b2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0
RGVzY3JpcHRvckJhc2UpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bXBpbGF0aW9uTWVzc2FnZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bXBpbGF0aW9uTWVzc2FnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ZWE0ZGI1NGFjMjI4YWI4N2MzYjk4ZjQ1
ZGIzODcxZWZhMGU5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwor
c3RydWN0IENvbXBpbGF0aW9uTWVzc2FnZSB7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGUgdHlwZTsKKyAgICB1aW50NjRfdCBsaW5l
TnVtOworICAgIHVpbnQ2NF90IGxpbmVQb3M7CisgICAgdWludDY0X3Qgb2Zmc2V0OworICAgIHVp
bnQ2NF90IGxlbmd0aDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG1lc3Nh
Z2U7CisgICAgICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICAgICAgZW5jb2RlciA8PCBsaW5lTnVt
OworICAgICAgICBlbmNvZGVyIDw8IGxpbmVQb3M7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0
OworICAgICAgICBlbmNvZGVyIDw8IGxlbmd0aDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21waWxhdGlvbk1lc3NhZ2U+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IG1lc3NhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKKyAgICAgICAgaWYgKCFtZXNz
YWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2VUeXBlPiB0eXBlOworICAgICAg
ICBkZWNvZGVyID4+IHR5cGU7CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGluZU51
bTsKKyAgICAgICAgZGVjb2RlciA+PiBsaW5lTnVtOworICAgICAgICBpZiAoIWxpbmVOdW0pCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IGxpbmVQb3M7CisgICAgICAgIGRlY29kZXIgPj4gbGluZVBvczsKKyAgICAgICAg
aWYgKCFsaW5lUG9zKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBvZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2Zm
c2V0OworICAgICAgICBpZiAoIW9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGVuZ3RoOworICAgICAgICBk
ZWNvZGVyID4+IGxlbmd0aDsKKyAgICAgICAgaWYgKCFsZW5ndGgpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbWVzc2FnZSks
IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpsaW5lTnVtKSwgV1RGTW92ZSgqbGluZVBvcyksIFdU
Rk1vdmUoKm9mZnNldCksIFdURk1vdmUoKmxlbmd0aCkgfSB9OworICAgIH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKaW5kZXggOTU3ZTZlNDYz
M2I3ODY1Y2EwNzE2MDQ3ZWI3YzkxMTk4NmU2YmEyOC4uN2JiM2UzMThlYmVjMzNlYzhmNzhhODNm
MTZkNzU1YzNkMjE0MWNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaApAQCAtMzIsNiArMzIsMjcgQEAg
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbXB1dGVQYXNzRGVzY3JpcHRv
ciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgQ29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZXMgdGltZXN0YW1wV3JpdGVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7Cisg
ICAgICAgIGVuY29kZXIgPDwgdGltZXN0YW1wV3JpdGVzOworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQYXNzRGVzY3JpcHRv
cj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFs
PE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVj
b2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlw
dG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcz4gdGltZXN0YW1wV3JpdGVzOwor
ICAgICAgICBkZWNvZGVyID4+IHRpbWVzdGFtcFdyaXRlczsKKyAgICAgICAgaWYgKCF0aW1lc3Rh
bXBXcml0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCp0aW1lc3Rh
bXBXcml0ZXMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaAppbmRleCAxYTA2ZjhmMDI1M2NmMjZmZmZmMGNk
YjI0NWRjMjA2ZDQ4NjMzODk1Li40ZjIyZDlhYWIxZGI2MjhiZjMxMzYyMmM4NDk4YzZhODRhYzI3
ZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaApAQCAtMzcsNiArMzcsMzMgQEAgc3Ry
dWN0IENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUgewogICAgIFdlYkdQVUlkZW50aWZpZXIgcXVl
cnlTZXQ7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4OwogICAgIFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uIGxvY2F0aW9uOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgcXVlcnlTZXQ7CisgICAgICAgIGVuY29kZXIgPDwgcXVl
cnlJbmRleDsKKyAgICAgICAgZW5jb2RlciA8PCBsb2NhdGlvbjsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gcXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4g
cXVlcnlTZXQ7CisgICAgICAgIGlmICghcXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4g
cXVlcnlJbmRleDsKKyAgICAgICAgZGVjb2RlciA+PiBxdWVyeUluZGV4OworICAgICAgICBpZiAo
IXF1ZXJ5SW5kZXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24+
IGxvY2F0aW9uOworICAgICAgICBkZWNvZGVyID4+IGxvY2F0aW9uOworICAgICAgICBpZiAoIWxv
Y2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKnF1ZXJ5U2V0KSwgV1RGTW92ZSgqcXVlcnlJbmRleCksIFdURk1vdmUo
KmxvY2F0aW9uKSB9IH07CisgICAgfQogfTsKIAogdXNpbmcgQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZXMgPSBWZWN0b3I8Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZT47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IuaAppbmRleCBjOTMzMjZhOWU5Mzc1ZGIzYjUwODA5OTYxNmNjMTM2OTA2YzI5MzNi
Li5jZGQ2NWQwOTVmNjhlNWVjYmViOTg3ZDNhYjMzYjI4YTJjYjY0NjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yLmgKQEAgLTMyLDYgKzMyLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiAKIHN0cnVjdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIDogcHVibGljIFBpcGVsaW5l
RGVzY3JpcHRvckJhc2UgewogICAgIFByb2dyYW1tYWJsZVN0YWdlIGNvbXB1dGU7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQaXBlbGluZURl
c2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbXB1dGU7CisgICAg
fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29t
cHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBpcGVsaW5lRGVzY3JpcHRvckJhc2U+IHBpcGVsaW5lRGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgaWYgKCFwaXBlbGluZURlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdl
PiBjb21wdXRlOworICAgICAgICBkZWNvZGVyID4+IGNvbXB1dGU7CisgICAgICAgIGlmICghY29t
cHV0ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpwaXBlbGluZURlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqY29tcHV0ZSkg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQuaAppbmRleCAwMjE4ODI3YjMwMWFjNmQzOGM2YzcyOGQ3OGNlMTlhOWMy
OTk1YWI0Li41OTU0NWQ2MDQ2OWFiZWUyNTMwMmY3YzkzNDdiODQwMjUyN2NjYjEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0LmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlciogY29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21t
YW5kQnVmZmVyKiBjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlciog
Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwot
ICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlcjggY29udmVy
dENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNvbnZlcnRD
b21wdXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0
ZVBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwg
Y29uc3QgUEFMOjpXZWJHUFU6OkRldmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpHUFUqIGNv
bnZlcnRHUFVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oCmluZGV4
IDJlMjE0NzczYTY1ZGI0ZjZjOGFkMjgyMWFjNjM2YTAwYTViZmY2ODEuLmE1OTdkZjA5NjEzNmRi
MzQyOGMyYzY3ZDUyZWM5NjFmZmJjZjYzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oCkBAIC00OCw2ICs0OCw3NSBA
QCBzdHJ1Y3QgRGVwdGhTdGVuY2lsU3RhdGUgewogICAgIFBBTDo6V2ViR1BVOjpEZXB0aEJpYXMg
ZGVwdGhCaWFzOwogICAgIGZsb2F0IGRlcHRoQmlhc1Nsb3BlU2NhbGU7CiAgICAgZmxvYXQgZGVw
dGhCaWFzQ2xhbXA7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7
CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhXcml0ZUVuYWJsZWQ7CisgICAgICAgIGVuY29kZXIg
PDwgZGVwdGhDb21wYXJlOworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxGcm9udDsKKyAgICAg
ICAgZW5jb2RlciA8PCBzdGVuY2lsQmFjazsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsUmVh
ZE1hc2s7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbFdyaXRlTWFzazsKKyAgICAgICAgZW5j
b2RlciA8PCBkZXB0aEJpYXM7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhCaWFzU2xvcGVTY2Fs
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEJpYXNDbGFtcDsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxEZXB0aFN0ZW5jaWxTdGF0
ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4g
Zm9ybWF0OworICAgICAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBkZXB0aFdyaXRlRW5hYmxlZDsK
KyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgaWYgKCFkZXB0
aFdyaXRlRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uPiBkZXB0aENvbXBh
cmU7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhDb21wYXJlOworICAgICAgICBpZiAoIWRlcHRo
Q29tcGFyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRlPiBzdGVuY2lsRnJvbnQ7CisgICAgICAgIGRlY29k
ZXIgPj4gc3RlbmNpbEZyb250OworICAgICAgICBpZiAoIXN0ZW5jaWxGcm9udCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdGVuY2ls
RmFjZVN0YXRlPiBzdGVuY2lsQmFjazsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsQmFjazsK
KyAgICAgICAgaWYgKCFzdGVuY2lsQmFjaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
dGVuY2lsVmFsdWU+PiBzdGVuY2lsUmVhZE1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNp
bFJlYWRNYXNrOworICAgICAgICBpZiAoIXN0ZW5jaWxSZWFkTWFzaykKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+PiBzdGVuY2lsV3JpdGVNYXNrOworICAgICAgICBk
ZWNvZGVyID4+IHN0ZW5jaWxXcml0ZU1hc2s7CisgICAgICAgIGlmICghc3RlbmNpbFdyaXRlTWFz
aykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6RGVwdGhCaWFzPiBkZXB0aEJpYXM7CisgICAgICAgIGRlY29kZXIg
Pj4gZGVwdGhCaWFzOworICAgICAgICBpZiAoIWRlcHRoQmlhcykKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZGVwdGhCaWFz
U2xvcGVTY2FsZTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAg
ICAgICBpZiAoIWRlcHRoQmlhc1Nsb3BlU2NhbGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGRlcHRoQmlhc0NsYW1wOwor
ICAgICAgICBkZWNvZGVyID4+IGRlcHRoQmlhc0NsYW1wOworICAgICAgICBpZiAoIWRlcHRoQmlh
c0NsYW1wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKmRlcHRoV3JpdGVFbmFibGVkKSwgV1RG
TW92ZSgqZGVwdGhDb21wYXJlKSwgV1RGTW92ZSgqc3RlbmNpbEZyb250KSwgV1RGTW92ZSgqc3Rl
bmNpbEJhY2spLCBXVEZNb3ZlKCpzdGVuY2lsUmVhZE1hc2spLCBXVEZNb3ZlKCpzdGVuY2lsV3Jp
dGVNYXNrKSwgV1RGTW92ZSgqZGVwdGhCaWFzKSwgV1RGTW92ZSgqZGVwdGhCaWFzU2xvcGVTY2Fs
ZSksIFdURk1vdmUoKmRlcHRoQmlhc0NsYW1wKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCmluZGV4IDg2YTRkNjhmZWY3MTczZTU1ZDU2MTNi
ZDRhNGI5NTZlMDMwZmUyMmIuLjZhMjUyMzZkYzg5YzY2OTg5MDQ3N2VkZGQxZDIzM2E0YjJiNDI0
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmlj
ZURlc2NyaXB0b3IuaApAQCAtMzcsNiArMzcsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIHN0cnVjdCBEZXZpY2VEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNl
IHsKICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPiByZXF1aXJlZEZlYXR1cmVz
OwogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgcmVxdWlyZWRMaW1pdHMuCisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNj
cmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCByZXF1aXJlZEZlYXR1cmVz
OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPERldmljZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAg
IGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpGZWF0dXJl
TmFtZT4+IHJlcXVpcmVkRmVhdHVyZXM7CisgICAgICAgIGRlY29kZXIgPj4gcmVxdWlyZWRGZWF0
dXJlczsKKyAgICAgICAgaWYgKCFyZXF1aXJlZEZlYXR1cmVzKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2Ny
aXB0b3JCYXNlKSwgV1RGTW92ZSgqcmVxdWlyZWRGZWF0dXJlcykgfSB9OworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVFcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyZWQyYmRlYjI0N2JjMmE5NzcyODk5ZjdiYzBh
NTk4ZDY2NDU0OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVRXJyb3IuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmgiCisjaW5jbHVkZSAiV2Vi
R1BVVmFsaWRhdGlvbkVycm9yLmgiCisjaW5jbHVkZSA8dmFyaWFudD4KKworbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKKwordXNpbmcgRXJyb3IgPSBzdGQ6OnZhcmlhbnQ8T3V0T2ZNZW1vcnlF
cnJvciwgVmFsaWRhdGlvbkVycm9yPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmgKaW5kZXggNDcz
YzRlMTk4ZjUzNTUyOTM2ZGU4MmM5ODBmNmRkMDljNDFjYjMxZS4uMTkzODM0MjA5NDJiOGYwNGY2
NGRiNjZmOGFiNjVmYWM1ZjU3Yjg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUV4dGVudDNELmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUV4dGVudDNELmgKQEAgLTM1LDYgKzM1LDMzIEBAIHN0cnVjdCBFeHRlbnQzRERpY3Qg
ewogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aDsKICAgICBQQUw6Oldl
YkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSBkZXB0aE9yQXJyYXlMYXllcnM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCB3aWR0aDsKKyAgICAgICAgZW5jb2RlciA8PCBoZWlnaHQ7CisgICAgICAgIGVu
Y29kZXIgPDwgZGVwdGhPckFycmF5TGF5ZXJzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4dGVudDNERGljdD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZT4gd2lkdGg7CisgICAgICAgIGRlY29kZXIgPj4gd2lkdGg7CisgICAg
ICAgIGlmICghd2lkdGgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBoZWlnaHQ7
CisgICAgICAgIGRlY29kZXIgPj4gaGVpZ2h0OworICAgICAgICBpZiAoIWhlaWdodCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGRlcHRoT3JBcnJheUxheWVyczsKKyAgICAgICAg
ZGVjb2RlciA+PiBkZXB0aE9yQXJyYXlMYXllcnM7CisgICAgICAgIGlmICghZGVwdGhPckFycmF5
TGF5ZXJzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKndpZHRoKSwgV1RGTW92ZSgqaGVpZ2h0KSwgV1RGTW92ZSgqZGVwdGhP
ckFycmF5TGF5ZXJzKSB9IH07CisgICAgfQogfTsKIAogdXNpbmcgRXh0ZW50M0QgPSBzdGQ6OnZh
cmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4sIEV4dGVudDNERGlj
dD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJu
YWxUZXh0dXJlQmluZGluZ0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAppbmRleCA1MGRhYmZhMjUxNDQ0M2Iz
MWQ1OTdkZGI2YzEyY2M1OTA2MWIzZDhlLi4yZDVjMmZmZGRhODRhNmE0NjJhOGQ3Y2Q1ZGQ4YTdk
YWM2NzJmNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgKQEAgLTI4LDYgKzI4
LDE0IEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgRXh0ZXJuYWxUZXh0
dXJlQmluZGluZ0xheW91dCB7CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXh0ZXJuYWxUZXh0dXJlQmluZGlu
Z0xheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICByZXR1cm4g
eyB7IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVy
ZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5h
bFRleHR1cmVEZXNjcmlwdG9yLmgKaW5kZXggNmU4MzAxZTNlMWRlMjk1MGJlMzIwOTYzMTZhZGQ2
NWI2YjQyMTFmMS4uOTNjNzQ1MTJlNDJlODRmYjVmMjA2YzY3MWM2ODM2N2VlNDNkZGNmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVy
ZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciA6IHB1Ymxp
YyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xv
clNwYWNlIGNvbG9yU3BhY2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBz
dGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAg
ZW5jb2RlciA8PCBjb2xvclNwYWNlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3RE
ZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4g
b2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2Up
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlPiBjb2xvclNwYWNlOworICAgICAg
ICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7CisgICAgICAgIGlmICghY29sb3JTcGFjZSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3Zl
KCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmNvbG9yU3BhY2UpIH0gfTsKKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmgKaW5kZXggZGQ0Y2FiMDgxZDVi
YmNkYjk1YTIzOGQ0MWMyZWE1M2Y4YTRjMTNlOS4uOWY5NmVlMTZkY2I2Y2E0N2FhODJjYzI4NDY2
OTNlOTY2ZTFjZWY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUZyYWdtZW50U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVRnJhZ21lbnRTdGF0ZS5oCkBAIC0zMyw2ICszMywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCiBzdHJ1Y3QgRnJhZ21lbnRTdGF0ZSA6IHB1YmxpYyBQcm9ncmFtbWFibGVTdGFn
ZSB7CiAgICAgVmVjdG9yPENvbG9yVGFyZ2V0U3RhdGU+IHRhcmdldHM7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFn
ZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB0YXJnZXRzOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZyYWdtZW50U3RhdGU+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
cm9ncmFtbWFibGVTdGFnZT4gcHJvZ3JhbW1hYmxlU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4g
cHJvZ3JhbW1hYmxlU3RhZ2U7CisgICAgICAgIGlmICghcHJvZ3JhbW1hYmxlU3RhZ2UpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPENvbG9yVGFyZ2V0U3RhdGU+PiB0YXJnZXRzOworICAgICAgICBkZWNvZGVyID4+IHRhcmdl
dHM7CisgICAgICAgIGlmICghdGFyZ2V0cykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwcm9ncmFtbWFibGVTdGFnZSksIFdU
Rk1vdmUoKnRhcmdldHMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUJ1ZmZlci5oCmluZGV4IDAzNTRmYzU2NjE4NjAyMDdlYWM0NTU0YzJiYzZkNmRiOTBkMjQw
ODMuLjExODY2MGU3N2Q2OTU2NThiODcyMmIzZTQ3ZTJmYTJmZjVjZWU0MGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKQEAg
LTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBJbWFn
ZUNvcHlCdWZmZXIgOiBwdWJsaWMgSW1hZ2VEYXRhTGF5b3V0IHsKICAgICBXZWJHUFVJZGVudGlm
aWVyIGJ1ZmZlcjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PGNvbnN0IEltYWdlRGF0YUxheW91dCY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBi
dWZmZXI7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8SW1hZ2VDb3B5QnVmZmVyPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VEYXRhTGF5b3V0PiBpbWFnZURhdGFMYXlvdXQ7
CisgICAgICAgIGRlY29kZXIgPj4gaW1hZ2VEYXRhTGF5b3V0OworICAgICAgICBpZiAoIWltYWdl
RGF0YUxheW91dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiBidWZmZXI7CisgICAgICAgIGRlY29kZXIg
Pj4gYnVmZmVyOworICAgICAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCppbWFnZURhdGFMYXlvdXQp
LCBXVEZNb3ZlKCpidWZmZXIpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKaW5kZXggMDcxMTBkYmQzODBkYzY1N2QxODM3
YTQ0NmRjN2UwZWQ0MDZjMGRjZS4uMWU1NTI4YjljNTRjYzFkOTdkZWZmZGMxOTMyZjJlYTExMDlh
OWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUV4dGVybmFsSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCkBAIC0zMiw4ICszMiwyMyBAQAogbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAg
IC8vIHN0ZDo6dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0Vs
ZW1lbnQ+PiBzb3VyY2U7CisgICAgLy8gRklYTUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0
ZDo6b3B0aW9uYWw8T3JpZ2luMkQ+IG9yaWdpbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IG9yaWdpbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxJbWFnZUNvcHlFeHRlcm5hbEltYWdlPiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxP
cmlnaW4yRD4+IG9yaWdpbjsKKyAgICAgICAgZGVjb2RlciA+PiBvcmlnaW47CisgICAgICAgIGlm
ICghb3JpZ2luKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKm9yaWdpbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUltYWdlQ29weVRleHR1cmUuaAppbmRleCBiZDVjNzA0YjA0Y2Y0MjViMjMyNzFiZjMw
MGY3MDc0N2Q1ZDkyNzg4Li44YTIzMDZhODQ0MzFmY2Q1ODAxMWY1ZWM4OGZhN2FhMGM0ODk5NzNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5
VGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlUZXh0dXJlLmgKQEAgLTM5LDYgKzM5LDM5IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlIHsK
ICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgbWlwTGV2ZWw7CiAgICAgc3RkOjpv
cHRpb25hbDxPcmlnaW4zRD4gb3JpZ2luOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0
IGFzcGVjdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHRleHR1cmU7Cisg
ICAgICAgIGVuY29kZXIgPDwgbWlwTGV2ZWw7CisgICAgICAgIGVuY29kZXIgPDwgb3JpZ2luOwor
ICAgICAgICBlbmNvZGVyIDw8IGFzcGVjdDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJbWFnZUNvcHlUZXh0dXJlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRp
Zmllcj4gdGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiB0ZXh0dXJlOworICAgICAgICBpZiAo
IXRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbDsKKyAg
ICAgICAgZGVjb2RlciA+PiBtaXBMZXZlbDsKKyAgICAgICAgaWYgKCFtaXBMZXZlbCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6
Om9wdGlvbmFsPE9yaWdpbjNEPj4gb3JpZ2luOworICAgICAgICBkZWNvZGVyID4+IG9yaWdpbjsK
KyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q+IGFzcGVj
dDsKKyAgICAgICAgZGVjb2RlciA+PiBhc3BlY3Q7CisgICAgICAgIGlmICghYXNwZWN0KQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1v
dmUoKnRleHR1cmUpLCBXVEZNb3ZlKCptaXBMZXZlbCksIFdURk1vdmUoKm9yaWdpbiksIFdURk1v
dmUoKmFzcGVjdCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VD
b3B5VGV4dHVyZVRhZ2dlZC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weVRleHR1cmVUYWdnZWQuaAppbmRleCA1NTVhZjBlMWFiZWY2MzUyNGE3N2EwNTg3NDBj
ZWYxNDZiYWUyMGJkLi44NDliYzRlODYxYzMzNjNhNjkwOTNlY2ZmOTFiMGY1ZDUyMGU0NjU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZVRhZ2dlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFn
ZUNvcHlUZXh0dXJlVGFnZ2VkLmgKQEAgLTMzLDYgKzMzLDMzIEBAIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CiBzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCA6IHB1YmxpYyBJbWFnZUNv
cHlUZXh0dXJlIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JT
cGFjZTsKICAgICBib29sIHByZW11bHRpcGxpZWRBbHBoYTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IEltYWdlQ29weVRleHR1cmUmPigqdGhp
cyk7CisgICAgICAgIGVuY29kZXIgPDwgY29sb3JTcGFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBw
cmVtdWx0aXBsaWVkQWxwaGE7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZD4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPEltYWdlQ29weVRleHR1
cmU+IGltYWdlQ29weVRleHR1cmU7CisgICAgICAgIGRlY29kZXIgPj4gaW1hZ2VDb3B5VGV4dHVy
ZTsKKyAgICAgICAgaWYgKCFpbWFnZUNvcHlUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmVkZWZp
bmVkQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb2xvclNwYWNl
OworICAgICAgICBpZiAoIWNvbG9yU3BhY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcHJlbXVsdGlwbGllZEFscGhhOwor
ICAgICAgICBkZWNvZGVyID4+IHByZW11bHRpcGxpZWRBbHBoYTsKKyAgICAgICAgaWYgKCFwcmVt
dWx0aXBsaWVkQWxwaGEpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqaW1hZ2VDb3B5VGV4dHVyZSksIFdURk1vdmUoKmNvbG9y
U3BhY2UpLCBXVEZNb3ZlKCpwcmVtdWx0aXBsaWVkQWxwaGEpIH0gfTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oCmluZGV4IDFlNWRkMGE0NjcxNmQ4OGQw
Y2Q3YTJhNmNhYTcwOTczZGZiZmI5NzQuLmNlNGNlMzkxNDczMDNmZTcwZTI3ZjY5YWFiZTBjZTVj
MWExNTdiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJ
bWFnZURhdGFMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
SW1hZ2VEYXRhTGF5b3V0LmgKQEAgLTM0LDYgKzM0LDMzIEBAIHN0cnVjdCBJbWFnZURhdGFMYXlv
dXQgewogICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0OwogICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlNpemUzMj4gYnl0ZXNQZXJSb3c7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6U2l6ZTMyPiByb3dzUGVySW1hZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29kZXIgPDwgYnl0ZXNQZXJSb3c7CisgICAg
ICAgIGVuY29kZXIgPDwgcm93c1BlckltYWdlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEltYWdlRGF0YUxheW91dD4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpTaXplNjQ+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlm
ICghb2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4+IGJ5dGVzUGVy
Um93OworICAgICAgICBkZWNvZGVyID4+IGJ5dGVzUGVyUm93OworICAgICAgICBpZiAoIWJ5dGVz
UGVyUm93KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4+IHJvd3NQZXJJbWFn
ZTsKKyAgICAgICAgZGVjb2RlciA+PiByb3dzUGVySW1hZ2U7CisgICAgICAgIGlmICghcm93c1Bl
ckltYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKm9mZnNldCksIFdURk1vdmUoKmJ5dGVzUGVyUm93KSwgV1RGTW92ZSgq
cm93c1BlckltYWdlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0
aXNhbXBsZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oCmluZGV4IGJkMTFiZTJlYzFlYzFiMmU0NzkxYzllZDgzMmM5YWMwMzAzYjE3
OGEuLjhkZTVkNThkOTgzMTlmOGQ5MTg4ODg2YzQ0MTAwOTYwMWMzZjk3MTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaApA
QCAtMzMsNiArMzMsMzMgQEAgc3RydWN0IE11bHRpc2FtcGxlU3RhdGUgewogICAgIFBBTDo6V2Vi
R1BVOjpTaXplMzIgY291bnQ7CiAgICAgUEFMOjpXZWJHUFU6OlNhbXBsZU1hc2sgbWFzazsKICAg
ICBib29sIGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCBjb3VudDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXNrOworICAgICAgICBlbmNv
ZGVyIDw8IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TXVsdGlzYW1wbGVTdGF0ZT4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaXplMzI+IGNvdW50OworICAgICAgICBkZWNvZGVyID4+IGNvdW50OworICAgICAgICBp
ZiAoIWNvdW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTYW1wbGVNYXNrPiBtYXNrOworICAgICAgICBkZWNv
ZGVyID4+IG1hc2s7CisgICAgICAgIGlmICghbWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBhbHBoYVRvQ292ZXJhZ2VF
bmFibGVkOworICAgICAgICBkZWNvZGVyID4+IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAg
ICAgIGlmICghYWxwaGFUb0NvdmVyYWdlRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpjb3VudCksIFdURk1vdmUo
Km1hc2spLCBXVEZNb3ZlKCphbHBoYVRvQ292ZXJhZ2VFbmFibGVkKSB9IH07CisgICAgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKaW5kZXggMjM4
NzkwMGE0NjE0ZGY4ZjBjY2JkZTc4Njk3N2I5MjA3YTk1MWU2Ni4uNGZjYjlmNTU4Nzc2ZjQzYzE2
OGJlNDBlMjcyMTZiNGU0OTMwYTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKQEAgLTMxLDYgKzMxLDIx
IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBPYmplY3REZXNjcmlwdG9y
QmFzZSB7CiAgICAgU3RyaW5nIGxhYmVsOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29k
ZXIgPDwgbGFiZWw7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGxhYmVsOworICAgICAg
ICBkZWNvZGVyID4+IGxhYmVsOworICAgICAgICBpZiAoIWxhYmVsKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmxhYmVsKSB9
IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKaW5kZXggZmRjNjY3MTAzMDdl
YjQ0ZGQ5MWJmMWU4N2M0Njc0ZjE4NGMwNjA4Mi4uZGYxZmZmZDU3ODQzOTUyM2JkYzcyMTE0MzMy
N2IwYzZmZTNhNzc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVU9yaWdpbjJELmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9y
aWdpbjJELmgKQEAgLTM0LDYgKzM0LDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBz
dHJ1Y3QgT3JpZ2luMkREaWN0IHsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUg
eDsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IHg7CisgICAgICAgIGVuY29kZXIgPDwgeTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPcmlnaW4y
RERpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IHg7CisgICAgICAgIGRlY29kZXIg
Pj4geDsKKyAgICAgICAgaWYgKCF4KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4g
eTsKKyAgICAgICAgZGVjb2RlciA+PiB5OworICAgICAgICBpZiAoIXkpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqeCksIFdU
Rk1vdmUoKnkpIH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFu
dDxWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luMkREaWN0PjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmgKaW5kZXggM2U0
NzQyNTM1Yzg5NDY0ODIzOTBlMWU4ZjQ0Y2ZiMGQwYTZhZmM4Yi4uY2Y3NDVhNDIwNzRhY2IyMGZl
NzUxNDZjMGU5NDUzMGU2NzRjOGU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVU9yaWdpbjNELmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVU9yaWdpbjNELmgKQEAgLTM1LDYgKzM1LDMzIEBAIHN0cnVjdCBPcmlnaW4zRERpY3Qg
ewogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4OwogICAgIFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZSB5OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0
ZSB6OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgeDsKKyAgICAgICAgZW5j
b2RlciA8PCB5OworICAgICAgICBlbmNvZGVyIDw8IHo7CisgICAgfQorCisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3JpZ2luM0REaWN0PiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkludGVnZXJDb29yZGluYXRlPiB4OworICAgICAgICBkZWNvZGVyID4+IHg7CisgICAgICAg
IGlmICgheCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IHk7CisgICAgICAgIGRl
Y29kZXIgPj4geTsKKyAgICAgICAgaWYgKCF5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZT4gejsKKyAgICAgICAgZGVjb2RlciA+PiB6OworICAgICAgICBpZiAoIXopCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
eCksIFdURk1vdmUoKnkpLCBXVEZNb3ZlKCp6KSB9IH07CisgICAgfQogfTsKIAogdXNpbmcgT3Jp
Z2luM0QgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0
ZT4sIE9yaWdpbjNERGljdD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzY5MzU3NTcxYWYxN2VmOWU3
Zjc2NDIzODc3ZmYzNDg0YWE2NjVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaApAQCAtMCwwICsxLDQxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisK
K3N0cnVjdCBPdXRPZk1lbW9yeUVycm9yIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPdXRPZk1lbW9yeUVy
cm9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsg
fSB9OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UuaAppbmRleCBlMjQ5MmFlMDk4Y2VkZjg4Y2ViY2RlOWE0MDM4ODEwOGJkYTc2OWIz
Li41YzRiNzA3OTAwNTFjZmMxZjdjNTU5NTE2NjhiOWY0NWIwNTVlMjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmgKQEAgLTMyLDYgKzMyLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAK
IHN0cnVjdCBQaXBlbGluZURlc2NyaXB0b3JCYXNlIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JC
YXNlIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGxheW91dDsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4o
KnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGxheW91dDsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JC
YXNlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBk
ZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2Ny
aXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGxheW91dDsKKyAgICAgICAgZGVjb2RlciA+
PiBsYXlvdXQ7CisgICAgICAgIGlmICghbGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JC
YXNlKSwgV1RGTW92ZSgqbGF5b3V0KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaAppbmRleCA2NDE3MzBlYmE2OTlk
N2JlMmU5MGQxYzA0ZGM5MmUxMjdkZTEyN2JmLi44MGEyMDE3ZmJjZjlkODRlZTM0MDI0OTdhNmNi
YjQ3OTg2ZjA1NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCkBAIC0zMyw2ICszMywyNyBA
QCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8V2ViR1BV
SWRlbnRpZmllcj4gYmluZEdyb3VwTGF5b3V0czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMp
OworICAgICAgICBlbmNvZGVyIDw8IGJpbmRHcm91cExheW91dHM7CisgICAgfQorCisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UGlwZWxpbmVMYXlvdXRE
ZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAg
ICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVj
dERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPj4gYmluZEdyb3VwTGF5
b3V0czsKKyAgICAgICAgZGVjb2RlciA+PiBiaW5kR3JvdXBMYXlvdXRzOworICAgICAgICBpZiAo
IWJpbmRHcm91cExheW91dHMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3Zl
KCpiaW5kR3JvdXBMYXlvdXRzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVQcmltaXRpdmVTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBy
aW1pdGl2ZVN0YXRlLmgKaW5kZXggYjg2ODc1YmI1MWVmNGM5MzcyZDhmMjVkMmFiMzM1OTI2MTVi
NzRiMy4uZDE4MjMzMjIzZDk3MGE4ZjA5OTA2MjU4NzgxMTVhYTQ3NTRiNDg5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKQEAg
LTQyLDYgKzQyLDQ1IEBAIHN0cnVjdCBQcmltaXRpdmVTdGF0ZSB7CiAKICAgICAvLyBSZXF1aXJl
cyAiZGVwdGgtY2xpcC1jb250cm9sIiBmZWF0dXJlLgogICAgIGJvb2wgdW5jbGlwcGVkRGVwdGg7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB0b3BvbG9neTsKKyAgICAgICAg
ZW5jb2RlciA8PCBzdHJpcEluZGV4Rm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8IGZyb250RmFj
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBjdWxsTW9kZTsKKyAgICAgICAgZW5jb2RlciA8PCB1bmNs
aXBwZWREZXB0aDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxQcmltaXRpdmVTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9n
eT4gdG9wb2xvZ3k7CisgICAgICAgIGRlY29kZXIgPj4gdG9wb2xvZ3k7CisgICAgICAgIGlmICgh
dG9wb2xvZ3kpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQ+PiBzdHJp
cEluZGV4Rm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IHN0cmlwSW5kZXhGb3JtYXQ7CisgICAg
ICAgIGlmICghc3RyaXBJbmRleEZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RnJvbnRGYWNlPiBmcm9u
dEZhY2U7CisgICAgICAgIGRlY29kZXIgPj4gZnJvbnRGYWNlOworICAgICAgICBpZiAoIWZyb250
RmFjZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6Q3VsbE1vZGU+IGN1bGxNb2RlOworICAgICAgICBkZWNvZGVy
ID4+IGN1bGxNb2RlOworICAgICAgICBpZiAoIWN1bGxNb2RlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHVuY2xpcHBlZERl
cHRoOworICAgICAgICBkZWNvZGVyID4+IHVuY2xpcHBlZERlcHRoOworICAgICAgICBpZiAoIXVu
Y2xpcHBlZERlcHRoKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKnRvcG9sb2d5KSwgV1RGTW92ZSgqc3RyaXBJbmRleEZvcm1h
dCksIFdURk1vdmUoKmZyb250RmFjZSksIFdURk1vdmUoKmN1bGxNb2RlKSwgV1RGTW92ZSgqdW5j
bGlwcGVkRGVwdGgpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dy
YW1tYWJsZVN0YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuaAppbmRleCBjNWI0MTY4MDZhOWNmY2NmZGEyZjBmMGJkNjIzNzYyMzI2NDgy
MjcwLi5lMWYwYWUwZDY5ZjI5YmI5ZmY3ODJlZWQ2MmQzNmQzODU3YzE5ZmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2Uu
aApAQCAtMzgsNiArMzgsMzMgQEAgc3RydWN0IFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBXZWJH
UFVJZGVudGlmaWVyIG1vZHVsZTsKICAgICBTdHJpbmcgZW50cnlQb2ludDsKICAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgUGlwZWxpbmVDb25zdGFudFZhbHVlPj4gY29uc3RhbnRzOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbW9kdWxlOworICAgICAgICBlbmNv
ZGVyIDw8IGVudHJ5UG9pbnQ7CisgICAgICAgIGVuY29kZXIgPDwgY29uc3RhbnRzOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByb2dy
YW1tYWJsZVN0YWdlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gbW9kdWxlOworICAgICAgICBkZWNvZGVyID4+
IG1vZHVsZTsKKyAgICAgICAgaWYgKCFtb2R1bGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbnRyeVBvaW50OworICAg
ICAgICBkZWNvZGVyID4+IGVudHJ5UG9pbnQ7CisgICAgICAgIGlmICghZW50cnlQb2ludCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgUGlwZWxpbmVDb25zdGFudFZhbHVlPj4+IGNvbnN0
YW50czsKKyAgICAgICAgZGVjb2RlciA+PiBjb25zdGFudHM7CisgICAgICAgIGlmICghY29uc3Rh
bnRzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKm1vZHVsZSksIFdURk1vdmUoKmVudHJ5UG9pbnQpLCBXVEZNb3ZlKCpjb25z
dGFudHMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVz
Y3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVz
Y3JpcHRvci5oCmluZGV4IGNkNDViNjYxMGE3YzA4NzU1Y2JlYTU0MmFlYjEwYjYwMjg4NTczMjIu
LmJlMTEyZDkyNTY2NWRiYTRhMDIzYWY0N2VlZDlmODI0YWI5M2I5Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgK
QEAgLTM3LDYgKzM3LDM5IEBAIHN0cnVjdCBRdWVyeVNldERlc2NyaXB0b3IgOiBwdWJsaWMgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFBBTDo6V2ViR1BVOjpRdWVyeVR5cGUgdHlwZTsKICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTMyIGNvdW50OwogICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UGlw
ZWxpbmVTdGF0aXN0aWNOYW1lPiBwaXBlbGluZVN0YXRpc3RpY3M7CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFz
ZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8
IGNvdW50OworICAgICAgICBlbmNvZGVyIDw8IHBpcGVsaW5lU3RhdGlzdGljczsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxRdWVyeVNl
dERlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZT4gdHlwZTsKKyAgICAg
ICAgZGVjb2RlciA+PiB0eXBlOworICAgICAgICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNp
emUzMj4gY291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gY291bnQ7CisgICAgICAgIGlmICghY291
bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU+PiBwaXBlbGlu
ZVN0YXRpc3RpY3M7CisgICAgICAgIGRlY29kZXIgPj4gcGlwZWxpbmVTdGF0aXN0aWNzOworICAg
ICAgICBpZiAoIXBpcGVsaW5lU3RhdGlzdGljcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFz
ZSksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb3VudCksIFdURk1vdmUoKnBpcGVsaW5lU3Rh
dGlzdGljcykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVu
ZGxlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRl
ckJ1bmRsZURlc2NyaXB0b3IuaAppbmRleCAwODFiYTY0YjBlMWQ5MmE0YjkwNzA3ZmU3NDJhZTcx
MmM1ZDQ2NGIzLi5jMDk2MjgwNzY0MWJmOWNhNDAxZDgxMmJhMjAwMzFiMmVhOTAwYTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJC
dW5kbGVEZXNjcmlwdG9yLmgKQEAgLTMwLDYgKzMwLDIwIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCiBzdHJ1Y3QgUmVuZGVyQnVuZGxlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3RE
ZXNjcmlwdG9yQmFzZSB7CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgfQorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyQnVuZGxl
RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6
Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmpl
Y3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSkgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNv
ZGVyRGVzY3JpcHRvci5oCmluZGV4IDU0MTc5MTljYmQ3YWIyNWJlOGJkOGVjMThkYzAzYzBiNWQ1
NzE5Y2MuLmUyOWNkNTRiOTVjYTQwYWMwYWQ4YmU1OWU3NDgzMmQyZGU4ZGI0MWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVy
RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oCkBAIC0zMiw2ICszMiwzMyBAQCBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgewogc3RydWN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yIDog
cHVibGljIFJlbmRlclBhc3NMYXlvdXQgewogICAgIGJvb2wgZGVwdGhSZWFkT25seTsKICAgICBi
b29sIHN0ZW5jaWxSZWFkT25seTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclBhc3NMYXlvdXQmPigqdGhpcyk7CisgICAgICAgIGVu
Y29kZXIgPDwgZGVwdGhSZWFkT25seTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsUmVhZE9u
bHk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiByZW5k
ZXJQYXNzTGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IHJlbmRlclBhc3NMYXlvdXQ7CisgICAg
ICAgIGlmICghcmVuZGVyUGFzc0xheW91dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBkZXB0aFJlYWRPbmx5OworICAgICAg
ICBkZWNvZGVyID4+IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGlmICghZGVwdGhSZWFkT25seSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxib29sPiBzdGVuY2lsUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFJlYWRP
bmx5OworICAgICAgICBpZiAoIXN0ZW5jaWxSZWFkT25seSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpyZW5kZXJQYXNzTGF5
b3V0KSwgV1RGTW92ZSgqZGVwdGhSZWFkT25seSksIFdURk1vdmUoKnN0ZW5jaWxSZWFkT25seSkg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3ND
b2xvckF0dGFjaG1lbnQuaAppbmRleCBlMGYzYzg5M2IxY2JhNzEzMDhmNzhjOGM3NjI1MjE4ZDRi
MzI3MDEzLi5iMGQ4OTI3ZWYyYmE4YTMwYjllYTZiNmQ1ZGY0N2UxNDg2NGVjN2RhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50LmgKQEAgLTQxLDYgKzQxLDM5IEBAIHN0cnVjdCBSZW5kZXJQYXNz
Q29sb3JBdHRhY2htZW50IHsKIAogICAgIHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9w
LCBWZWN0b3I8ZG91YmxlPiwgQ29sb3JEaWN0PiBsb2FkVmFsdWU7CiAgICAgUEFMOjpXZWJHUFU6
OlN0b3JlT3Agc3RvcmVPcDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHZp
ZXc7CisgICAgICAgIGVuY29kZXIgPDwgcmVzb2x2ZVRhcmdldDsKKyAgICAgICAgZW5jb2RlciA8
PCBsb2FkVmFsdWU7CisgICAgICAgIGVuY29kZXIgPDwgc3RvcmVPcDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzQ29s
b3JBdHRhY2htZW50PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gdmlldzsKKyAgICAgICAgZGVjb2RlciA+PiB2
aWV3OworICAgICAgICBpZiAoIXZpZXcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gcmVzb2x2ZVRhcmdl
dDsKKyAgICAgICAgZGVjb2RlciA+PiByZXNvbHZlVGFyZ2V0OworICAgICAgICBpZiAoIXJlc29s
dmVUYXJnZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxkb3Vi
bGU+LCBDb2xvckRpY3Q+PiBsb2FkVmFsdWU7CisgICAgICAgIGRlY29kZXIgPj4gbG9hZFZhbHVl
OworICAgICAgICBpZiAoIWxvYWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gc3RvcmVP
cDsKKyAgICAgICAgZGVjb2RlciA+PiBzdG9yZU9wOworICAgICAgICBpZiAoIXN0b3JlT3ApCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqdmlldyksIFdURk1vdmUoKnJlc29sdmVUYXJnZXQpLCBXVEZNb3ZlKCpsb2FkVmFsdWUp
LCBXVEZNb3ZlKCpzdG9yZU9wKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKaW5kZXgg
NjhhNDg0YjAzM2QyMTUyMWJkZDM2M2ZmYmI3MGRhM2Y4ZjM5OGRmYi4uZTgyZWQ2YzgxZThhY2E3
ODVjODA1OGMwMzI0MjZlZTVmMGMyYmI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxB
dHRhY2htZW50LmgKQEAgLTQ0LDYgKzQ0LDU3IEBAIHN0cnVjdCBSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudCB7CiAgICAgc3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFBB
TDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+IHN0ZW5jaWxMb2FkVmFsdWU7CiAgICAgUEFMOjpXZWJH
UFU6OlN0b3JlT3Agc3RlbmNpbFN0b3JlT3A7CiAgICAgYm9vbCBzdGVuY2lsUmVhZE9ubHk7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB2aWV3OworICAgICAgICBlbmNvZGVy
IDw8IGRlcHRoTG9hZFZhbHVlOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RvcmVPcDsKKyAg
ICAgICAgZW5jb2RlciA8PCBkZXB0aFJlYWRPbmx5OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5j
aWxMb2FkVmFsdWU7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbFN0b3JlT3A7CisgICAgICAg
IGVuY29kZXIgPDwgc3RlbmNpbFJlYWRPbmx5OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gdmlldzsKKyAgICAgICAgZGVjb2RlciA+PiB2aWV3Owor
ICAgICAgICBpZiAoIXZpZXcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIGZs
b2F0Pj4gZGVwdGhMb2FkVmFsdWU7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhMb2FkVmFsdWU7
CisgICAgICAgIGlmICghZGVwdGhMb2FkVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JlT3A+IGRl
cHRoU3RvcmVPcDsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFN0b3JlT3A7CisgICAgICAgIGlm
ICghZGVwdGhTdG9yZU9wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIg
Pj4gZGVwdGhSZWFkT25seTsKKyAgICAgICAgaWYgKCFkZXB0aFJlYWRPbmx5KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFy
aWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBQQUw6OldlYkdQVTo6U3RlbmNpbFZhbHVlPj4gc3Rl
bmNpbExvYWRWYWx1ZTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsTG9hZFZhbHVlOworICAg
ICAgICBpZiAoIXN0ZW5jaWxMb2FkVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JlT3A+IHN0ZW5j
aWxTdG9yZU9wOworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxTdG9yZU9wOworICAgICAgICBp
ZiAoIXN0ZW5jaWxTdG9yZU9wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN0ZW5jaWxSZWFkT25seTsKKyAgICAgICAgZGVj
b2RlciA+PiBzdGVuY2lsUmVhZE9ubHk7CisgICAgICAgIGlmICghc3RlbmNpbFJlYWRPbmx5KQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKnZpZXcpLCBXVEZNb3ZlKCpkZXB0aExvYWRWYWx1ZSksIFdURk1vdmUoKmRlcHRoU3Rv
cmVPcCksIFdURk1vdmUoKmRlcHRoUmVhZE9ubHkpLCBXVEZNb3ZlKCpzdGVuY2lsTG9hZFZhbHVl
KSwgV1RGTW92ZSgqc3RlbmNpbFN0b3JlT3ApLCBXVEZNb3ZlKCpzdGVuY2lsUmVhZE9ubHkpIH0g
fTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuaAppbmRleCA4N2U4MTBhMmI1ZTczZjU3YWI5ZDkwZmIzYzcyYmQxZTdhZDIxN2I0Li5iYTRj
ZWUyMTBjYTAwYmViOWU4Yjg3N2ZmNzk3MjZjNDVmYmQ4MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaApA
QCAtNDAsNiArNDAsNDUgQEAgc3RydWN0IFJlbmRlclBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9i
amVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0
ZW5jaWxBdHRhY2htZW50PiBkZXB0aFN0ZW5jaWxBdHRhY2htZW50OwogICAgIFdlYkdQVUlkZW50
aWZpZXIgb2NjbHVzaW9uUXVlcnlTZXQ7CiAgICAgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyB0
aW1lc3RhbXBXcml0ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5j
b2RlciA8PCBjb2xvckF0dGFjaG1lbnRzOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNp
bEF0dGFjaG1lbnQ7CisgICAgICAgIGVuY29kZXIgPDwgb2NjbHVzaW9uUXVlcnlTZXQ7CisgICAg
ICAgIGVuY29kZXIgPDwgdGltZXN0YW1wV3JpdGVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXNjcmlwdG9yPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2Jq
ZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVy
ID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JC
YXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50Pj4gY29sb3JBdHRhY2htZW50
czsKKyAgICAgICAgZGVjb2RlciA+PiBjb2xvckF0dGFjaG1lbnRzOworICAgICAgICBpZiAoIWNv
bG9yQXR0YWNobWVudHMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0
YWNobWVudD4+IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZGVw
dGhTdGVuY2lsQXR0YWNobWVudDsKKyAgICAgICAgaWYgKCFkZXB0aFN0ZW5jaWxBdHRhY2htZW50
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFdlYkdQVUlkZW50aWZpZXI+IG9jY2x1c2lvblF1ZXJ5U2V0OworICAgICAgICBkZWNvZGVy
ID4+IG9jY2x1c2lvblF1ZXJ5U2V0OworICAgICAgICBpZiAoIW9jY2x1c2lvblF1ZXJ5U2V0KQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXM+IHRpbWVzdGFtcFdyaXRlczsKKyAgICAgICAgZGVj
b2RlciA+PiB0aW1lc3RhbXBXcml0ZXM7CisgICAgICAgIGlmICghdGltZXN0YW1wV3JpdGVzKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqY29sb3JBdHRhY2htZW50cyks
IFdURk1vdmUoKmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpLCBXVEZNb3ZlKCpvY2NsdXNpb25RdWVy
eVNldCksIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaAppbmRleCBhMTcyZWUyNWNlYTE1ZWRlNzNj
NTRhMzdmYWY3NWM3N2M1ODI0OGQxLi40ZWUzMWVlMzZhY2JlOWNjN2Q0ZjhiYTBkNWI2MmRiMzdh
NzE0Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzTGF5b3V0LmgKQEAgLTM3LDYgKzM3LDM5IEBAIHN0cnVjdCBSZW5kZXJQYXNzTGF5
b3V0IDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8UEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ+IGNvbG9yRm9ybWF0czsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBkZXB0aFN0ZW5jaWxGb3JtYXQ7CiAgICAgUEFMOjpXZWJH
UFU6OlNpemUzMiBzYW1wbGVDb3VudDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAg
ICAgICBlbmNvZGVyIDw8IGNvbG9yRm9ybWF0czsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFN0
ZW5jaWxGb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlQ291bnQ7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFz
c0xheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3RE
ZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+PiBjb2xv
ckZvcm1hdHM7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3JGb3JtYXRzOworICAgICAgICBpZiAo
IWNvbG9yRm9ybWF0cykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
Pj4gZGVwdGhTdGVuY2lsRm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGRlcHRoU3RlbmNpbEZv
cm1hdDsKKyAgICAgICAgaWYgKCFkZXB0aFN0ZW5jaWxGb3JtYXQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNp
emUzMj4gc2FtcGxlQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlQ291bnQ7CisgICAg
ICAgIGlmICghc2FtcGxlQ291bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZN
b3ZlKCpjb2xvckZvcm1hdHMpLCBXVEZNb3ZlKCpkZXB0aFN0ZW5jaWxGb3JtYXQpLCBXVEZNb3Zl
KCpzYW1wbGVDb3VudCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaAppbmRleCA4YjFlYmE3NDY1ZjE3NjU5Zjgw
YzhhMTIxZTJhMWVmOGVjYTE1OWQ0Li44YjkyNjNhN2M0ODBkMDgzMWY1NDQ5OTZmZWUxMWIyNzA0
ZTRlYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgKQEAgLTM3LDYgKzM3LDMzIEBAIHN0
cnVjdCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUgewogICAgIFdlYkdQVUlkZW50aWZpZXIgcXVl
cnlTZXQ7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4OwogICAgIFBBTDo6V2Vi
R1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24gbG9jYXRpb247CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVy
eUluZGV4OworICAgICAgICBlbmNvZGVyIDw8IGxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IHF1ZXJ5U2V0OworICAgICAgICBkZWNvZGVyID4+IHF1
ZXJ5U2V0OworICAgICAgICBpZiAoIXF1ZXJ5U2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHF1
ZXJ5SW5kZXg7CisgICAgICAgIGRlY29kZXIgPj4gcXVlcnlJbmRleDsKKyAgICAgICAgaWYgKCFx
dWVyeUluZGV4KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24+IGxv
Y2F0aW9uOworICAgICAgICBkZWNvZGVyID4+IGxvY2F0aW9uOworICAgICAgICBpZiAoIWxvY2F0
aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKnF1ZXJ5U2V0KSwgV1RGTW92ZSgqcXVlcnlJbmRleCksIFdURk1vdmUoKmxv
Y2F0aW9uKSB9IH07CisgICAgfQogfTsKIAogdXNpbmcgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cyA9IFZlY3RvcjxSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU+OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ci5oCmluZGV4IDlhMjcxYzczZDUzNTE4M2IwODYxNmMzYjY3Mjg2Mjg1M2ZkNmZjOGQuLjZjMmVm
NzMwOTJhYTI0Y2FmM2Q1OTQxN2I0Y2IwNjFhOTkyZWYxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yLmgKQEAgLTQxLDYgKzQxLDUxIEBAIHN0cnVjdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Ig
OiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiAgICAgc3RkOjpvcHRpb25hbDxEZXB0
aFN0ZW5jaWxTdGF0ZT4gZGVwdGhTdGVuY2lsOwogICAgIHN0ZDo6b3B0aW9uYWw8TXVsdGlzYW1w
bGVTdGF0ZT4gbXVsdGlzYW1wbGU7CiAgICAgc3RkOjpvcHRpb25hbDxGcmFnbWVudFN0YXRlPiBm
cmFnbWVudDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0
PGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIg
PDwgdmVydGV4OworICAgICAgICBlbmNvZGVyIDw8IHByaW1pdGl2ZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBkZXB0aFN0ZW5jaWw7CisgICAgICAgIGVuY29kZXIgPDwgbXVsdGlzYW1wbGU7CisgICAg
ICAgIGVuY29kZXIgPDwgZnJhZ21lbnQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yPiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UGlwZWxp
bmVEZXNjcmlwdG9yQmFzZT4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBwaXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIXBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8VmVydGV4U3RhdGU+IHZlcnRleDsKKyAgICAgICAgZGVjb2RlciA+PiB2ZXJ0
ZXg7CisgICAgICAgIGlmICghdmVydGV4KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UHJpbWl0aXZlU3RhdGU+
PiBwcmltaXRpdmU7CisgICAgICAgIGRlY29kZXIgPj4gcHJpbWl0aXZlOworICAgICAgICBpZiAo
IXByaW1pdGl2ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPj4gZGVwdGhTdGVu
Y2lsOworICAgICAgICBkZWNvZGVyID4+IGRlcHRoU3RlbmNpbDsKKyAgICAgICAgaWYgKCFkZXB0
aFN0ZW5jaWwpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPj4gbXVsdGlzYW1wbGU7
CisgICAgICAgIGRlY29kZXIgPj4gbXVsdGlzYW1wbGU7CisgICAgICAgIGlmICghbXVsdGlzYW1w
bGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxGcmFnbWVudFN0YXRlPj4gZnJhZ21lbnQ7CisgICAgICAgIGRl
Y29kZXIgPj4gZnJhZ21lbnQ7CisgICAgICAgIGlmICghZnJhZ21lbnQpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcGlwZWxp
bmVEZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnZlcnRleCksIFdURk1vdmUoKnByaW1pdGl2ZSks
IFdURk1vdmUoKmRlcHRoU3RlbmNpbCksIFdURk1vdmUoKm11bHRpc2FtcGxlKSwgV1RGTW92ZSgq
ZnJhZ21lbnQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RB
ZGFwdGVyT3B0aW9ucy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVl
c3RBZGFwdGVyT3B0aW9ucy5oCmluZGV4IGE5MTc4ZDYxNzcyMzczNjczOGZmMGQ2MGZkMzUwZWYz
MWQzZmNlYzkuLjA2YjAzMWM3MTJlZGU4N2Y1ODU5YTNkNTNiM2I0NmVkNTkxMTIzMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9w
dGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFk
YXB0ZXJPcHRpb25zLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiBzdHJ1Y3QgUmVxdWVzdEFkYXB0ZXJPcHRpb25zIHsKICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U+IHBvd2VyUHJlZmVyZW5jZTsKICAgICBib29sIGZv
cmNlRmFsbGJhY2tBZGFwdGVyOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
cG93ZXJQcmVmZXJlbmNlOworICAgICAgICBlbmNvZGVyIDw8IGZvcmNlRmFsbGJhY2tBZGFwdGVy
OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFJlcXVlc3RBZGFwdGVyT3B0aW9ucz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBvd2Vy
UHJlZmVyZW5jZT4+IHBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAgZGVjb2RlciA+PiBwb3dlclBy
ZWZlcmVuY2U7CisgICAgICAgIGlmICghcG93ZXJQcmVmZXJlbmNlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGZvcmNlRmFs
bGJhY2tBZGFwdGVyOworICAgICAgICBkZWNvZGVyID4+IGZvcmNlRmFsbGJhY2tBZGFwdGVyOwor
ICAgICAgICBpZiAoIWZvcmNlRmFsbGJhY2tBZGFwdGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnBvd2VyUHJlZmVyZW5j
ZSksIFdURk1vdmUoKmZvcmNlRmFsbGJhY2tBZGFwdGVyKSB9IH07CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmgKaW5kZXggOTBlYTk4N2Ex
MTg2M2UzYzExN2QyNjk1YzUzNzZlNWMwNDRmNDI0Zi4uOTU5MjFlYTU4NzQ1NTNkOGZiZjBjZDVh
NTNiNGQwMDUwMDZlMzJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmgKQEAgLTMxLDYgKzMxLDIxIEBAIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBTYW1wbGVyQmluZGluZ0xheW91dCB7
CiAgICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZSB0eXBlOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTYW1wbGVyQmluZGluZ0xheW91dD4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlw
ZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnR5cGUpIH0gfTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaAppbmRleCBkN2M3NDdhOTQ3NTZj
Y2I0MDNkZjNmZTU1ZjFiNTM4ZjU3MjE4MTIwLi5iOGQ4NTk0ODcxNDJiY2NmYWM1MTE1ZjliZmFk
OWUzOWNiMGM1M2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVU2FtcGxlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaApAQCAtNDUsNiArNDUsODEgQEAgc3RydWN0IFNhbXBs
ZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBmbG9hdCBs
b2RNYXhDbGFtcDsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rp
b24+IGNvbXBhcmU7CiAgICAgdWludDE2X3QgbWF4QW5pc290cm9weTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JC
YXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGFkZHJlc3NNb2RlVTsKKyAgICAgICAg
ZW5jb2RlciA8PCBhZGRyZXNzTW9kZVY7CisgICAgICAgIGVuY29kZXIgPDwgYWRkcmVzc01vZGVX
OworICAgICAgICBlbmNvZGVyIDw8IG1hZ0ZpbHRlcjsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5G
aWx0ZXI7CisgICAgICAgIGVuY29kZXIgPDwgbWlwbWFwRmlsdGVyOworICAgICAgICBlbmNvZGVy
IDw8IGxvZE1pbkNsYW1wOworICAgICAgICBlbmNvZGVyIDw8IGxvZE1heENsYW1wOworICAgICAg
ICBlbmNvZGVyIDw8IGNvbXBhcmU7CisgICAgICAgIGVuY29kZXIgPDwgbWF4QW5pc290cm9weTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxTYW1wbGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAg
aWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IGFk
ZHJlc3NNb2RlVTsKKyAgICAgICAgZGVjb2RlciA+PiBhZGRyZXNzTW9kZVU7CisgICAgICAgIGlm
ICghYWRkcmVzc01vZGVVKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZT4gYWRkcmVzc01vZGVW
OworICAgICAgICBkZWNvZGVyID4+IGFkZHJlc3NNb2RlVjsKKyAgICAgICAgaWYgKCFhZGRyZXNz
TW9kZVYpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlPiBhZGRyZXNzTW9kZVc7CisgICAgICAg
IGRlY29kZXIgPj4gYWRkcmVzc01vZGVXOworICAgICAgICBpZiAoIWFkZHJlc3NNb2RlVykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6RmlsdGVyTW9kZT4gbWFnRmlsdGVyOworICAgICAgICBkZWNvZGVyID4+IG1h
Z0ZpbHRlcjsKKyAgICAgICAgaWYgKCFtYWdGaWx0ZXIpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkZpbHRlck1v
ZGU+IG1pbkZpbHRlcjsKKyAgICAgICAgZGVjb2RlciA+PiBtaW5GaWx0ZXI7CisgICAgICAgIGlm
ICghbWluRmlsdGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGaWx0ZXJNb2RlPiBtaXBtYXBGaWx0ZXI7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWlwbWFwRmlsdGVyOworICAgICAgICBpZiAoIW1pcG1hcEZpbHRl
cikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxmbG9hdD4gbG9kTWluQ2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4gbG9kTWluQ2xhbXA7
CisgICAgICAgIGlmICghbG9kTWluQ2xhbXApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGxvZE1heENsYW1wOworICAgICAg
ICBkZWNvZGVyID4+IGxvZE1heENsYW1wOworICAgICAgICBpZiAoIWxvZE1heENsYW1wKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4+IGNvbXBhcmU7CisgICAg
ICAgIGRlY29kZXIgPj4gY29tcGFyZTsKKyAgICAgICAgaWYgKCFjb21wYXJlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90
PiBtYXhBbmlzb3Ryb3B5OworICAgICAgICBkZWNvZGVyID4+IG1heEFuaXNvdHJvcHk7CisgICAg
ICAgIGlmICghbWF4QW5pc290cm9weSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdU
Rk1vdmUoKmFkZHJlc3NNb2RlVSksIFdURk1vdmUoKmFkZHJlc3NNb2RlViksIFdURk1vdmUoKmFk
ZHJlc3NNb2RlVyksIFdURk1vdmUoKm1hZ0ZpbHRlciksIFdURk1vdmUoKm1pbkZpbHRlciksIFdU
Rk1vdmUoKm1pcG1hcEZpbHRlciksIFdURk1vdmUoKmxvZE1pbkNsYW1wKSwgV1RGTW92ZSgqbG9k
TWF4Q2xhbXApLCBXVEZNb3ZlKCpjb21wYXJlKSwgV1RGTW92ZSgqbWF4QW5pc290cm9weSkgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3IuaAppbmRleCA3YzFkYWZmY2JmZjVlMjg0ZjBkOTc5MmYyNDg2NWM4OGNlNTAyZmJkLi5k
ZDc3ODZjZThiOTY2MTE2ZDI2OWEyNTEwYTVmMmY4MjI5YzE3MDRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1
Y3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7
CiAgICAgU3RyaW5nIGNvZGU7CiAgICAgLy8gSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gc291
cmNlTWFwOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwg
Y29kZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxTaGFkZXJNb2R1bGVEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVj
dERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNl
OworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY29kZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBjb2RlOworICAgICAgICBpZiAoIWNvZGUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0
RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb2RlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oCmluZGV4IDY1YTZiM2FhOWE1NDdmMzI2NjAy
NDAwMjM5MDYxODFmYzE1YWVjMzEuLmU0MDFiNjRjZDM1MmZmYWQwZjZhNTQ4NzU3MTMyNTk3MmQz
ODI0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVu
Y2lsRmFjZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0
ZW5jaWxGYWNlU3RhdGUuaApAQCAtMzUsNiArMzUsMzkgQEAgc3RydWN0IFN0ZW5jaWxGYWNlU3Rh
dGUgewogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uIGZhaWxPcDsKICAgICBQQUw6
OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbiBkZXB0aEZhaWxPcDsKICAgICBQQUw6OldlYkdQVTo6
U3RlbmNpbE9wZXJhdGlvbiBwYXNzT3A7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBjb21wYXJlOworICAgICAgICBlbmNvZGVyIDw8IGZhaWxPcDsKKyAgICAgICAgZW5jb2Rl
ciA8PCBkZXB0aEZhaWxPcDsKKyAgICAgICAgZW5jb2RlciA8PCBwYXNzT3A7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RlbmNpbEZh
Y2VTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24+IGNvbXBhcmU7CisgICAgICAgIGRl
Y29kZXIgPj4gY29tcGFyZTsKKyAgICAgICAgaWYgKCFjb21wYXJlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
dGVuY2lsT3BlcmF0aW9uPiBmYWlsT3A7CisgICAgICAgIGRlY29kZXIgPj4gZmFpbE9wOworICAg
ICAgICBpZiAoIWZhaWxPcCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbj4gZGVwdGhG
YWlsT3A7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhGYWlsT3A7CisgICAgICAgIGlmICghZGVw
dGhGYWlsT3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24+IHBhc3NPcDsKKyAgICAg
ICAgZGVjb2RlciA+PiBwYXNzT3A7CisgICAgICAgIGlmICghcGFzc09wKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvbXBh
cmUpLCBXVEZNb3ZlKCpmYWlsT3ApLCBXVEZNb3ZlKCpkZXB0aEZhaWxPcCksIFdURk1vdmUoKnBh
c3NPcCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1
cmVCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3Rv
cmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggZjMxMDMwNjFiMDZmZTA2MmNlZWMwMzEx
ZDIwZTAzNTI5NjljMDhmYi4uYzI1YjFhZjM0MWFhYTA3MDE1OTYwMDU1OGUzY2I2NjcwMDE4M2E5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VU
ZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMzUsNiArMzUsMzMgQEAgc3Ry
dWN0IFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzIGFjY2VzczsKICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdCBm
b3JtYXQ7CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNp
b247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBhY2Nlc3M7CisgICAgICAg
IGVuY29kZXIgPDwgZm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8IHZpZXdEaW1lbnNpb247Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNj
ZXNzPiBhY2Nlc3M7CisgICAgICAgIGRlY29kZXIgPj4gYWNjZXNzOworICAgICAgICBpZiAoIWFj
Y2VzcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gZm9ybWF0OworICAgICAgICBkZWNv
ZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uPiB2aWV3RGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IHZpZXdE
aW1lbnNpb247CisgICAgICAgIGlmICghdmlld0RpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCphY2Nlc3MpLCBX
VEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCp2aWV3RGltZW5zaW9uKSB9IH07CisgICAgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBm
Mzg5MDNlMDcyNDMyMzkxODM2YzI2NjMzM2ZjNTk1YmRjNzYyMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0IFN1cHBvcnRlZEZlYXR1cmVzIHsKKyAgICBWZWN0
b3I8U3RyaW5nPiBmZWF0dXJlczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8
IGZlYXR1cmVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFN1cHBvcnRlZEZlYXR1cmVzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGZlYXR1cmVzOwor
ICAgICAgICBkZWNvZGVyID4+IGZlYXR1cmVzOworICAgICAgICBpZiAoIWZlYXR1cmVzKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1v
dmUoKmZlYXR1cmVzKSB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0
ZWRMaW1pdHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWNhMDNlZDRmZWUzNTE2Njg1OTM3YmNlMWQ2ZGZkMmEy
Yzk2ZDUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVN1cHBvcnRlZExpbWl0cy5oCkBAIC0wLDAgKzEsMjUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjc3RkaW50PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgeworCitzdHJ1Y3QgU3VwcG9ydGVkTGltaXRzIHsKKyAgICB1aW50MzJfdCBtYXhUZXh0dXJl
RGltZW5zaW9uMUQgeyAwIH07CisgICAgdWludDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjJEIHsg
MCB9OworICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24zRCB7IDAgfTsKKyAgICB1aW50
MzJfdCBtYXhUZXh0dXJlQXJyYXlMYXllcnMgeyAwIH07CisgICAgdWludDMyX3QgbWF4QmluZEdy
b3VwcyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhEeW5hbWljVW5pZm9ybUJ1ZmZlcnNQZXJQaXBl
bGluZUxheW91dCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQ
ZXJQaXBlbGluZUxheW91dCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhTYW1wbGVkVGV4dHVyZXNQ
ZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhTYW1wbGVyc1BlclNoYWRlclN0
YWdlIHsgMCB9OworICAgIHVpbnQzMl90IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2Ug
eyAwIH07CisgICAgdWludDMyX3QgbWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UgeyAw
IH07CisgICAgdWludDMyX3QgbWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSB7IDAgfTsK
KyAgICB1aW50NjRfdCBtYXhVbmlmb3JtQnVmZmVyQmluZGluZ1NpemUgeyAwIH07CisgICAgdWlu
dDY0X3QgbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplIHsgMCB9OworICAgIHVpbnQzMl90IG1p
blVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQgeyAwIH07CisgICAgdWludDMyX3QgbWluU3Rv
cmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhWZXJ0ZXhC
dWZmZXJzIHsgMCB9OworICAgIHVpbnQzMl90IG1heFZlcnRleEF0dHJpYnV0ZXMgeyAwIH07Cisg
ICAgdWludDMyX3QgbWF4VmVydGV4QnVmZmVyQXJyYXlTdHJpZGUgeyAwIH07CisgICAgdWludDMy
X3QgbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMgeyAwIH07CisgICAgdWludDMyX3QgbWF4
Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1
dGVJbnZvY2F0aW9uc1Blcldvcmtncm91cCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRl
V29ya2dyb3VwU2l6ZVggeyAwIH07CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNp
emVZIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWiB7IDAgfTsK
KyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbiB7IDAgfTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG1heFRleHR1cmVEaW1lbnNpb24xRDsK
KyAgICAgICAgZW5jb2RlciA8PCBtYXhUZXh0dXJlRGltZW5zaW9uMkQ7CisgICAgICAgIGVuY29k
ZXIgPDwgbWF4VGV4dHVyZURpbWVuc2lvbjNEOworICAgICAgICBlbmNvZGVyIDw8IG1heFRleHR1
cmVBcnJheUxheWVyczsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhCaW5kR3JvdXBzOworICAgICAg
ICBlbmNvZGVyIDw8IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0Owor
ICAgICAgICBlbmNvZGVyIDw8IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5
b3V0OworICAgICAgICBlbmNvZGVyIDw8IG1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdl
OworICAgICAgICBlbmNvZGVyIDw8IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAg
IGVuY29kZXIgPDwgbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5j
b2RlciA8PCBtYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8
IG1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9y
YWdlQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAgIGVuY29kZXIgPDwgbWluVW5pZm9ybUJ1ZmZl
ck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5TdG9yYWdlQnVmZmVyT2Zm
c2V0QWxpZ25tZW50OworICAgICAgICBlbmNvZGVyIDw8IG1heFZlcnRleEJ1ZmZlcnM7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4VmVydGV4QXR0cmlidXRlczsKKyAgICAgICAgZW5jb2RlciA8PCBt
YXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhJbnRlclN0
YWdlU2hhZGVyQ29tcG9uZW50czsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhDb21wdXRlV29ya2dy
b3VwU3RvcmFnZVNpemU7CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZUludm9jYXRpb25z
UGVyV29ya2dyb3VwOworICAgICAgICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTaXpl
WDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVk7CisgICAgICAg
IGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaOworICAgICAgICBlbmNvZGVyIDw8
IG1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uOworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZExpbWl0cz4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQz
Ml90PiBtYXhUZXh0dXJlRGltZW5zaW9uMUQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVy
ZURpbWVuc2lvbjFEOworICAgICAgICBpZiAoIW1heFRleHR1cmVEaW1lbnNpb24xRCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50
MzJfdD4gbWF4VGV4dHVyZURpbWVuc2lvbjJEOworICAgICAgICBkZWNvZGVyID4+IG1heFRleHR1
cmVEaW1lbnNpb24yRDsKKyAgICAgICAgaWYgKCFtYXhUZXh0dXJlRGltZW5zaW9uMkQpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWlu
dDMyX3Q+IG1heFRleHR1cmVEaW1lbnNpb24zRDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0
dXJlRGltZW5zaW9uM0Q7CisgICAgICAgIGlmICghbWF4VGV4dHVyZURpbWVuc2lvbjNEKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQzMl90PiBtYXhUZXh0dXJlQXJyYXlMYXllcnM7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4
dHVyZUFycmF5TGF5ZXJzOworICAgICAgICBpZiAoIW1heFRleHR1cmVBcnJheUxheWVycykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1
aW50MzJfdD4gbWF4QmluZEdyb3VwczsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhCaW5kR3JvdXBz
OworICAgICAgICBpZiAoIW1heEJpbmRHcm91cHMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heER5bmFtaWNVbmlm
b3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IG1heER5bmFt
aWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBpZiAoIW1heER5bmFt
aWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhEeW5hbWlj
U3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhE
eW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dDsKKyAgICAgICAgaWYgKCFtYXhE
eW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4U2Ft
cGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4U2FtcGxl
ZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGlmICghbWF4U2FtcGxlZFRleHR1cmVz
UGVyU2hhZGVyU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYg
KCFtYXhTYW1wbGVyc1BlclNoYWRlclN0YWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhTdG9yYWdlQnVmZmVy
c1BlclNoYWRlclN0YWdlOworICAgICAgICBkZWNvZGVyID4+IG1heFN0b3JhZ2VCdWZmZXJzUGVy
U2hhZGVyU3RhZ2U7CisgICAgICAgIGlmICghbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFn
ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDx1aW50MzJfdD4gbWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAg
IGRlY29kZXIgPj4gbWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGlm
ICghbWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFVuaWZv
cm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VW5pZm9ybUJ1
ZmZlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhVbmlmb3JtQnVmZmVyc1BlclNo
YWRlclN0YWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtYXhVbmlmb3JtQnVmZmVyQmluZGluZ1NpemU7CisgICAg
ICAgIGRlY29kZXIgPj4gbWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAgICBpZiAo
IW1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbWF4U3RvcmFnZUJ1ZmZl
ckJpbmRpbmdTaXplOworICAgICAgICBkZWNvZGVyID4+IG1heFN0b3JhZ2VCdWZmZXJCaW5kaW5n
U2l6ZTsKKyAgICAgICAgaWYgKCFtYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemUpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMy
X3Q+IG1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAgICAgIGRlY29kZXIgPj4g
bWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgaWYgKCFtaW5Vbmlmb3Jt
QnVmZmVyT2Zmc2V0QWxpZ25tZW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0
QWxpZ25tZW50OworICAgICAgICBkZWNvZGVyID4+IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGln
bm1lbnQ7CisgICAgICAgIGlmICghbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1
aW50MzJfdD4gbWF4VmVydGV4QnVmZmVyczsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhC
dWZmZXJzOworICAgICAgICBpZiAoIW1heFZlcnRleEJ1ZmZlcnMpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFZl
cnRleEF0dHJpYnV0ZXM7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VmVydGV4QXR0cmlidXRlczsK
KyAgICAgICAgaWYgKCFtYXhWZXJ0ZXhBdHRyaWJ1dGVzKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhWZXJ0ZXhC
dWZmZXJBcnJheVN0cmlkZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhCdWZmZXJBcnJh
eVN0cmlkZTsKKyAgICAgICAgaWYgKCFtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50
MzJfdD4gbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHM7CisgICAgICAgIGRlY29kZXIgPj4g
bWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHM7CisgICAgICAgIGlmICghbWF4SW50ZXJTdGFn
ZVNoYWRlckNvbXBvbmVudHMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdl
U2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemU7
CisgICAgICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90
PiBtYXhDb21wdXRlSW52b2NhdGlvbnNQZXJXb3JrZ3JvdXA7CisgICAgICAgIGRlY29kZXIgPj4g
bWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwOworICAgICAgICBpZiAoIW1heENvbXB1
dGVJbnZvY2F0aW9uc1Blcldvcmtncm91cCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91
cFNpemVYOworICAgICAgICBkZWNvZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWDsKKyAg
ICAgICAgaWYgKCFtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVgpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1
dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3Vw
U2l6ZVk7CisgICAgICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cFNpemVZKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90
PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7CisgICAgICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0
ZVdvcmtncm91cFNpemVaOworICAgICAgICBpZiAoIW1heENvbXB1dGVXb3JrZ3JvdXBTaXplWikK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1lbnNpb247CisgICAgICAgIGRl
Y29kZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1lbnNpb247CisgICAgICAgIGlmICgh
bWF4Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1lbnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsKKyAgICAgICAgICAgICptYXhUZXh0dXJl
RGltZW5zaW9uMUQsCisgICAgICAgICAgICAqbWF4VGV4dHVyZURpbWVuc2lvbjJELAorICAgICAg
ICAgICAgKm1heFRleHR1cmVEaW1lbnNpb24zRCwKKyAgICAgICAgICAgICptYXhUZXh0dXJlQXJy
YXlMYXllcnMsCisgICAgICAgICAgICAqbWF4QmluZEdyb3VwcywKKyAgICAgICAgICAgICptYXhE
eW5hbWljVW5pZm9ybUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCwKKyAgICAgICAgICAgICptYXhE
eW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCwKKyAgICAgICAgICAgICptYXhT
YW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhTYW1wbGVyc1Bl
clNoYWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3Rh
Z2UsCisgICAgICAgICAgICAqbWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UsCisgICAg
ICAgICAgICAqbWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICpt
YXhVbmlmb3JtQnVmZmVyQmluZGluZ1NpemUsCisgICAgICAgICAgICAqbWF4U3RvcmFnZUJ1ZmZl
ckJpbmRpbmdTaXplLAorICAgICAgICAgICAgKm1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1l
bnQsCisgICAgICAgICAgICAqbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAg
ICAgICAgICptYXhWZXJ0ZXhCdWZmZXJzLAorICAgICAgICAgICAgKm1heFZlcnRleEF0dHJpYnV0
ZXMsCisgICAgICAgICAgICAqbWF4VmVydGV4QnVmZmVyQXJyYXlTdHJpZGUsCisgICAgICAgICAg
ICAqbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMsCisgICAgICAgICAgICAqbWF4Q29tcHV0
ZVdvcmtncm91cFN0b3JhZ2VTaXplLAorICAgICAgICAgICAgKm1heENvbXB1dGVJbnZvY2F0aW9u
c1Blcldvcmtncm91cCwKKyAgICAgICAgICAgICptYXhDb21wdXRlV29ya2dyb3VwU2l6ZVgsCisg
ICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtncm91cFNpemVZLAorICAgICAgICAgICAgKm1heENv
bXB1dGVXb3JrZ3JvdXBTaXplWiwKKyAgICAgICAgICAgICptYXhDb21wdXRlV29ya2dyb3Vwc1Bl
ckRpbWVuc2lvbiwKKyAgICAgICAgfSB9OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5oCmluZGV4IDA2OTI2NDRlYjA5YWZlNWJkODcyOTdk
YTljZjBmYjFjZTgyMWY4ZmUuLmEyOWI5Y2YyZDc4ZTkyNWQwYmEwM2RjNjIzOGFlNzQ5ZjMwODBm
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJl
QmluZGluZ0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3QgVGV4dHVyZUJp
bmRpbmdMYXlvdXQgewogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZSBzYW1wbGVU
eXBlOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbiB2aWV3RGltZW5zaW9u
OwogICAgIGJvb2wgbXVsdGlzYW1wbGVkOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29k
ZXIgPDwgc2FtcGxlVHlwZTsKKyAgICAgICAgZW5jb2RlciA8PCB2aWV3RGltZW5zaW9uOworICAg
ICAgICBlbmNvZGVyIDw8IG11bHRpc2FtcGxlZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUZXh0dXJlQmluZGluZ0xheW91dD4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZT4gc2FtcGxlVHlwZTsKKyAgICAgICAgZGVjb2RlciA+
PiBzYW1wbGVUeXBlOworICAgICAgICBpZiAoIXNhbXBsZVR5cGUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3RGltZW5zaW9uPiB2aWV3RGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IHZp
ZXdEaW1lbnNpb247CisgICAgICAgIGlmICghdmlld0RpbWVuc2lvbikKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBtdWx0aXNh
bXBsZWQ7CisgICAgICAgIGRlY29kZXIgPj4gbXVsdGlzYW1wbGVkOworICAgICAgICBpZiAoIW11
bHRpc2FtcGxlZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCpzYW1wbGVUeXBlKSwgV1RGTW92ZSgqdmlld0RpbWVuc2lvbiks
IFdURk1vdmUoKm11bHRpc2FtcGxlZCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCmluZGV4IDMxYTA2NmU2NTA0NWE1Zjk3NWRiMTRjNmU3
YjEwYTVmZjE3Yjk5MWIuLjMzMjIxN2JhNjEyNTJjMTQ4MDdiZTY0ODgwMjllMzVkOGVjNTI1MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJl
RGVzY3JpcHRvci5oCkBAIC00MSw2ICs0MSw1NyBAQCBzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3Ig
OiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
RGltZW5zaW9uIGRpbWVuc2lvbjsKICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdCBmb3Jt
YXQ7CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVVc2FnZUZsYWdzIHVzYWdlOworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3Jp
cHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICAgICAgZW5j
b2RlciA8PCBtaXBMZXZlbENvdW50OworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZUNvdW50Owor
ICAgICAgICBlbmNvZGVyIDw8IGRpbWVuc2lvbjsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7
CisgICAgICAgIGVuY29kZXIgPDwgdXNhZ2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGV4dHVyZURlc2NyaXB0b3I+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNj
cmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
RXh0ZW50M0Q+IHNpemU7CisgICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFz
aXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gbWlwTGV2ZWxDb3VudDsKKyAg
ICAgICAgZGVjb2RlciA+PiBtaXBMZXZlbENvdW50OworICAgICAgICBpZiAoIW1pcExldmVsQ291
bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gc2FtcGxlQ291bnQ7CisgICAgICAgIGRlY29kZXIg
Pj4gc2FtcGxlQ291bnQ7CisgICAgICAgIGlmICghc2FtcGxlQ291bnQpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlRleHR1cmVEaW1lbnNpb24+IGRpbWVuc2lvbjsKKyAgICAgICAgZGVjb2RlciA+PiBkaW1lbnNp
b247CisgICAgICAgIGlmICghZGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAgICBpZiAoIWZvcm1h
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVVzYWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNv
ZGVyID4+IHVzYWdlOworICAgICAgICBpZiAoIXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0
b3JCYXNlKSwgV1RGTW92ZSgqc2l6ZSksIFdURk1vdmUoKm1pcExldmVsQ291bnQpLCBXVEZNb3Zl
KCpzYW1wbGVDb3VudCksIFdURk1vdmUoKmRpbWVuc2lvbiksIFdURk1vdmUoKmZvcm1hdCksIFdU
Rk1vdmUoKnVzYWdlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlVmlld0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlVmlld0Rlc2NyaXB0b3IuaAppbmRleCBmZmE1NmU1M2JiYTA5MjA5YWJiZDVmMWU0OWMy
NmFkYzIzZTU3NGVhLi5hODE3NDM1NWUxZDY5ZjMzNjgyOWY2NDIzZjAzMTIyZTk5ZmU4OWM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGVzY3JpcHRvci5oCkBAIC00Miw2ICs0Miw2MyBAQCBzdHJ1Y3QgVGV4dHVyZVZpZXdE
ZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gbWlwTGV2ZWxDb3VudDsKICAgICBQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgYmFzZUFycmF5TGF5ZXI7CiAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGFycmF5TGF5ZXJDb3VudDsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9i
amVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsK
KyAgICAgICAgZW5jb2RlciA8PCBkaW1lbnNpb247CisgICAgICAgIGVuY29kZXIgPDwgYXNwZWN0
OworICAgICAgICBlbmNvZGVyIDw8IGJhc2VNaXBMZXZlbDsKKyAgICAgICAgZW5jb2RlciA8PCBt
aXBMZXZlbENvdW50OworICAgICAgICBlbmNvZGVyIDw8IGJhc2VBcnJheUxheWVyOworICAgICAg
ICBlbmNvZGVyIDw8IGFycmF5TGF5ZXJDb3VudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUZXh0dXJlVmlld0Rlc2NyaXB0b3I+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmpl
Y3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIg
Pj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJh
c2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4+IGZvcm1hdDsK
KyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uPj4gZGltZW5zaW9uOwor
ICAgICAgICBkZWNvZGVyID4+IGRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFkaW1lbnNpb24pCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q+IGFzcGVjdDsKKyAgICAgICAgZGVjb2RlciA+PiBh
c3BlY3Q7CisgICAgICAgIGlmICghYXNwZWN0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRp
bmF0ZT4gYmFzZU1pcExldmVsOworICAgICAgICBkZWNvZGVyID4+IGJhc2VNaXBMZXZlbDsKKyAg
ICAgICAgaWYgKCFiYXNlTWlwTGV2ZWwpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGU+PiBtaXBMZXZlbENvdW50OworICAgICAgICBkZWNvZGVyID4+IG1pcExl
dmVsQ291bnQ7CisgICAgICAgIGlmICghbWlwTGV2ZWxDb3VudCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGU+IGJhc2VBcnJheUxheWVyOworICAgICAgICBkZWNvZGVyID4+IGJhc2VB
cnJheUxheWVyOworICAgICAgICBpZiAoIWJhc2VBcnJheUxheWVyKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPj4gYXJyYXlMYXllckNvdW50OworICAgICAg
ICBkZWNvZGVyID4+IGFycmF5TGF5ZXJDb3VudDsKKyAgICAgICAgaWYgKCFhcnJheUxheWVyQ291
bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZN
b3ZlKCpkaW1lbnNpb24pLCBXVEZNb3ZlKCphc3BlY3QpLCBXVEZNb3ZlKCpiYXNlTWlwTGV2ZWwp
LCBXVEZNb3ZlKCptaXBMZXZlbENvdW50KSwgV1RGTW92ZSgqYmFzZUFycmF5TGF5ZXIpLCBXVEZN
b3ZlKCphcnJheUxheWVyQ291bnQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVZhbGlkYXRpb25FcnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVZhbGlkYXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNDgxMDJkZjZmNDBmYWRhZjhhYWYwNjE5
YzU4MjE0NWE1OTZmMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0cnVjdCBWYWxpZGF0aW9uRXJyb3IgeworICAg
IFN0cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVz
c2FnZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWYWxpZGF0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG1lc3NhZ2U7CisgICAgICAgIGRlY29kZXIg
Pj4gbWVzc2FnZTsKKyAgICAgICAgaWYgKCFtZXNzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm1lc3NhZ2UpIH0gfTsK
KyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oCmluZGV4IGEx
YjUzYzk3Yzc5YjU3OTNjOTdlNjFmYjNhYTdiZDYzYmUzNjlhNzMuLmY5M2ZiY2Q2MmMxMjg5MDcz
YzRhOTY3MWZiMmI2NjA2ZGQwZGQzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmgKQEAgLTM1LDYgKzM1LDMzIEBAIHN0cnVj
dCBWZXJ0ZXhBdHRyaWJ1dGUgewogICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0OwogCiAg
ICAgUEFMOjpXZWJHUFU6OkluZGV4MzIgc2hhZGVyTG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0Owor
ICAgICAgICBlbmNvZGVyIDw8IHNoYWRlckxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlcnRleEF0dHJpYnV0ZT4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7
CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldDsKKyAg
ICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICghb2Zmc2V0KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpJbmRleDMyPiBzaGFkZXJMb2NhdGlvbjsKKyAgICAgICAgZGVjb2RlciA+PiBzaGFkZXJM
b2NhdGlvbjsKKyAgICAgICAgaWYgKCFzaGFkZXJMb2NhdGlvbikKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpmb3JtYXQpLCBX
VEZNb3ZlKCpvZmZzZXQpLCBXVEZNb3ZlKCpzaGFkZXJMb2NhdGlvbikgfSB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKaW5kZXggMDM3Nzc0
YjFiNzE4OWUzNjVlODIzMGIzZmIxNjI4M2M2ODA3MTQ2Yi4uMjMxMDJkY2RiMzQ0MjRiN2E4MWI1
ZGYyMjJmZGNkMDVkMDIzNThlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaApAQCAtMzYsNiArMzYsMzMgQEAgc3Ry
dWN0IFZlcnRleEJ1ZmZlckxheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBhcnJheVN0
cmlkZTsKICAgICBQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGUgc3RlcE1vZGU7CiAgICAgVmVj
dG9yPFZlcnRleEF0dHJpYnV0ZT4gYXR0cmlidXRlczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBlbmNvZGVyIDw8IGFycmF5U3RyaWRlOworICAgICAgICBlbmNvZGVyIDw8IHN0ZXBNb2RlOwor
ICAgICAgICBlbmNvZGVyIDw8IGF0dHJpYnV0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVydGV4QnVmZmVyTGF5b3V0PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemU2ND4gYXJyYXlTdHJpZGU7CisgICAgICAgIGRlY29kZXIgPj4gYXJyYXlTdHJp
ZGU7CisgICAgICAgIGlmICghYXJyYXlTdHJpZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBN
b2RlPiBzdGVwTW9kZTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVwTW9kZTsKKyAgICAgICAgaWYg
KCFzdGVwTW9kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8VmVydGV4QXR0cmlidXRlPj4gYXR0cmlidXRlczsKKyAgICAg
ICAgZGVjb2RlciA+PiBhdHRyaWJ1dGVzOworICAgICAgICBpZiAoIWF0dHJpYnV0ZXMpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqYXJyYXlTdHJpZGUpLCBXVEZNb3ZlKCpzdGVwTW9kZSksIFdURk1vdmUoKmF0dHJpYnV0ZXMp
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaAppbmRleCA4NDI0
NzEzZGRjZDQ5OGY2YjYwMWM0MDgyYzcxOTdlMWRiZTJiYjU5Li40NmZmOGM3NTQzZWMwMmFhMjFk
NmRlZDdhZDllMWYxNDgyMDExZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVVmVydGV4U3RhdGUuaApAQCAtMzQsNiArMzQsMjcgQEAgbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIAogc3RydWN0IFZlcnRleFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0
YWdlIHsKICAgICBWZWN0b3I8c3RkOjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+PiBidWZm
ZXJzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29u
c3QgUHJvZ3JhbW1hYmxlU3RhZ2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVy
czsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxWZXJ0ZXhTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBwcm9ncmFtbWFibGVTdGFnZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBwcm9ncmFtbWFibGVTdGFnZTsKKyAgICAgICAgaWYgKCFwcm9ncmFt
bWFibGVTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8c3RkOjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+Pj4g
YnVmZmVyczsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXJzOworICAgICAgICBpZiAoIWJ1ZmZl
cnMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqcHJvZ3JhbW1hYmxlU3RhZ2UpLCBXVEZNb3ZlKCpidWZmZXJzKSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4
IDY3NmRhZGRhYzg4MzE5NmM2YTM0NGE5ZmIxYTZkNGNkNDFhZjhjYmIuLjkxZDFlYWI4OTA1MTg0
ZjhlMDIxM2QzOWFlOGRkYjU0MmMzYzhiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMzEsNiArMzEsMjkg
QEAgR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdC5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvU2NvcGVkV2ViR0xSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0LmNwcAorR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUJpbmRHcm91cC5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUJpbmRHcm91cExheW91dC5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1
ZmZlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIu
Y3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5jcHAK
K0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAK
K0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAKK0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAKK0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVBpcGVsaW5lTGF5b3V0LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
cnlTZXQuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKK0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHAKK0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCitHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKK0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmNwcAorR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVNoYWRlck1vZHVsZS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVRleHR1cmUuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJl
Vmlldy5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3Bw
CiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmNwcAog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtNzYwLDMgKzc4Mywy
NiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxh
dGZvcm1YUlN5c3RlbU1lc3NhZ2VSZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNl
aXZlci5jcHAKKworUmVtb3RlQWRhcHRlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUJpbmRH
cm91cE1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUJpbmRHcm91cExheW91dE1lc3NhZ2VSZWNl
aXZlci5jcHAKK1JlbW90ZUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUNvbW1hbmRC
dWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2VSZWNl
aXZlci5jcHAKK1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZUNvbXB1dGVQaXBlbGluZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZURldmljZU1lc3Nh
Z2VSZWNlaXZlci5jcHAKK1JlbW90ZUV4dGVybmFsVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAK
K1JlbW90ZUdQVU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVBpcGVsaW5lTGF5b3V0TWVzc2Fn
ZVJlY2VpdmVyLmNwcAorUmVtb3RlUXVlcnlTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVR
dWV1ZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlckJ1bmRsZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKK1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlclBpcGVs
aW5lTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZlci5jcHAK
K1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVRleHR1cmVNZXNz
YWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDg2
MDhkMmIxNzBiYmI1ZDNkNjdmMzA3N2FhODRiZTcxMDllZTNiNTcuLmJkOTcyYTJiZWMyNWJlMjY3
Zjk1ODFiZDBhZWMyMGZhZWRmNmI2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVW5pZmll
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNCw2ICs0LDkgQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMC1tbS5tbQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMC5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlMTAwLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDEuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMv
VW5pZmllZFNvdXJjZTEwMi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAzLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMS1tbS5tbQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMS5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291
cmNlMTItbW0ubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDdkYTY1NzRmOGQ2NDM4NDNkOTA0MmQzMTQ0NjUzNjlkYzE4NThkN2IuLjZl
ZmVjYmNlZTQ2NTkyZTc1OGUwZTg4Y2Y2ZTkxODFjZTkyOTk5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzgwLDYgKzM4MCw5IEBA
CiAJCTFDMEExOTVDMUM5MTZFMUIwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
U2NyaXB0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzBBMTk1QjFDOTE2RTFCMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eVNjcmlwdFNvdXJjZS5oICovOyB9OwogCQkxQzIwOTM2MDIyMzE4Q0IwMDAwMjZBMzkgLyogTlNB
dHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQzIwOTM1RTIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQkxQzIxODQw
MjIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyMTg0MDEyMjMzODcyODAw
QkFDNzAwIC8qIE5TQXR0cmlidXRlZFN0cmluZ1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQzU2NTU3RjI3NDVDNUExMDA2MzAwQUYg
LyogVW5pZmllZFNvdXJjZTEwMS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzU2NTU3QzI3NDVDNUEwMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEw
MS5jcHAgKi87IH07CisJCTFDNTY1NTgwMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNl
MTAyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
NTY1NTdEMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCAqLzsgfTsKKwkJ
MUM1NjU1ODEyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM1NjU1N0UyNzQ1QzVBMTAw
NjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDMuY3BwICovOyB9OwogCQkxQzg5MUQ2NjE5QjEyNEZG
MDBCQTc5REQgLyogV2ViSW5zcGVjdG9yVUkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDODkxRDYzMTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0
b3JVSS5oICovOyB9OwogCQkxQzhFMjgyMDEyNzVEMTU0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMjgx
RTEyNzVEMTU0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yLmggKi87IH07CiAJCTFDOEUyODM0MTI3
NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JVSVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMjgzMjEyNzVENzM4MDBCQzdCRDAgLyog
V2ViSW5zcGVjdG9yVUlQcm94eS5oICovOyB9OwpAQCAtMjg3OSw2ICsyODgyLDkgQEAKIAkJMUMy
MDkzNUUyMjMxOENCMDAwMDI2QTM5IC8qIE5TQXR0cmlidXRlZFN0cmluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOU0F0dHJpYnV0ZWRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUMyMDkzNUYyMjMxOENCMDAwMDI2QTM5IC8qIE5TQXR0cmlidXRlZFN0cmluZy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE5TQXR0cmlidXRlZFN0cmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUMyMTg0MDEyMjMzODcyODAwQkFDNzAwIC8qIE5TQXR0cmlidXRlZFN0cmlu
Z1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNBdHRyaWJ1dGVk
U3RyaW5nUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzU2NTU3QzI3
NDVDNUEwMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBVbmlmaWVkU291cmNlMTAxLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAxLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTFDNTY1NTdEMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291
cmNlMTAyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDIuY3BwOyBwYXRo
ID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
MDIuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUM1NjU1N0Uy
NzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gVW5pZmllZFNvdXJjZTEwMy5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMy5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQkxQzczOUU4NTIzNDdCQ0Y2MDBDNjIxRUMgLyogQ29yZVRleHRI
ZWxwZXJzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29yZVRleHRIZWxwZXJzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzczOUU4NzIzNDdCRDBGMDBDNjIxRUMgLyogQ29y
ZVRleHRIZWxwZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVUZXh0SGVscGVycy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQzc3QzE5NTEyODhBODcyMDA2QTc0MkYgLyogV2ViSW5z
cGVjdG9yVUlQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJbnNw
ZWN0b3JVSVByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Mjg5NSw2ICsyOTAxLDgwIEBACiAJCTFDOEUyQTMxMTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNw
ZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUM4RTJBMzIxMjc3ODUyNDAwQkM3QkQwIC8qIFdl
Ykluc3BlY3Rvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
Ykluc3BlY3Rvck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklu
c3BlY3Rvck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTFDOEUyREFEMTI3OEM1QjIwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JVSU1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3RvclVJTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAxRDI3NDQ2QTAzMDAyQ0NCNzggLyog
UmVtb3RlR1BVLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUdQVS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDFFMjc0NDZBMDMwMDJDQ0I3OCAvKiBXZWJHUFVP
YmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVU9iamVjdEhlYXAuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMUYyNzQ0NkEwMzAwMkNDQjc4IC8qIFJlbW90ZVF1
ZXJ5U2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVF1ZXJ5U2V0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDIwMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJC
dW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDIxMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVRdWV1
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDIyMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjMyNzQ0NkEwNTAwMkNDQjc4
IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTaGFk
ZXJNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyNDI3NDQ2
QTA1MDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0SGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJHUFVPYmplY3RIZWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
MjUyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyNjI3NDQ2
QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAyNzI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjgyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVNh
bXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDI5Mjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVS
ZW5kZXJQaXBlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJQaXBlbGluZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyQTI3NDQ2QTA3MDAyQ0NCNzggLyog
UmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUV4dGVy
bmFsVGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJCMjc0
NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzAyQzI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1wbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMDJEMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVQaXBlbGluZUxheW91dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVQaXBlbGluZUxheW91dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzAyRTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZVZp
ZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVGV4dHVyZVZpZXcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMkYyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVEZXZpY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzAzMDI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUXVldWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwMzEyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzIyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVy
bmFsVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVFeHRlcm5hbFRleHR1cmUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzMyNzQ0NkEwODAwMkNDQjc4IC8qIFJl
bW90ZVJlbmRlclBpcGVsaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbmRlclBp
cGVsaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzQyNzQ0NkEw
OTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVT
aGFkZXJNb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzUyNzQ0
NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlVGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDM2Mjc0
NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVUZXh0dXJlVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDM3Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDM4Mjc0
NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVHUFUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR1BVLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDM5Mjc0NDZBMDkwMDJDQ0I3OCAv
KiBSZW1vdGVSZW5kZXJCdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVy
QnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwM0EyNzQ0NkEw
OTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZVF1ZXJ5U2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwM0IyNzQ0
NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVDb21wdXRlUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzAzQzI3NDQ2QTBBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQaXBlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzA0RDI3NDQ2Q0I3MDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUJ1ZmZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA0RTI3NDQ2Q0I3MDAyQ0NCNzggLyogUmVtb3Rl
QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUJ1
ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDRGMjc0NDZDQjgw
MDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUFkYXB0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
NTAyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDUxMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1v
dGVCaW5kR3JvdXBMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwNTIyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXAuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1MzI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVt
b3RlQmluZEdyb3VwTGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUJpbmRHcm91cExheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzA1NDI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzA1NTI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29k
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZEVuY29k
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTYyNzQ0NkNCOTAwMkND
Qjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwNTcyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZm
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1ODI3NDQ2Q0JBMDAyQ0NC
NzggLyogUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU5Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVBZGFw
dGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUFkYXB0
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1QTI3NDQ2Q0JBMDAy
Q0NCNzggLyogUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzA3OTI3NDRBMUNDMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVk
RmVhdHVyZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwN0EyNzQ0QTIwNTAwMkNDQjc4IC8qIFdl
YkdQVVN1cHBvcnRlZExpbWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVTdXBwb3J0ZWRMaW1p
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwN0IyNzQ0QjQxNjAwMkND
Qjc4IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVD
b21waWxhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
N0MyNzQ0Qjk5MTAwMkNDQjc4IC8qIFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzA3RDI3NDRCOUI3MDAyQ0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkdQVVZhbGlkYXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzA3RTI3NDRCOURCMDAyQ0NCNzggLyogV2ViR1BVRXJyb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR1BVRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwODAyNzQ0QkQ5NzAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJlbW90ZVF1ZXVlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA4MTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDgyMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1v
dGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlRXh0ZXJuYWxUZXh0dXJl
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4MzI3NDRC
RDk4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZVJlbmRlckJ1bmRsZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwODQyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg1Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVQaXBl
bGluZUxheW91dC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODYyNzQ0QkQ5OTAwMkND
Qjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRl
clBpcGVsaW5lLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzA4NzI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzA4ODI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDg5Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVy
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDhBMjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDhCMjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwOEMyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVTaGFkZXJNb2R1bGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDhEMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDhFMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRl
UGlwZWxpbmUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4RjI3NDRCRDlBMDAyQ0NC
NzggLyogUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZURldmljZS5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTAyNzQ0QkQ5QTAwMkND
Qjc4IC8qIFJlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVCdWZmZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDkxMjc0NEJEOUEwMDJD
Q0I3OCAvKiBSZW1vdGVBZGFwdGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUFkYXB0ZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDkyMjc0NEJEOUIw
MDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQmluZEdy
b3VwLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5MzI3
NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTQyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUdQVS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVHUFUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDk1Mjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rl
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5RUJBNUIyMDg3RTc0RTAwMDU0NDI5IC8qIE5h
dGl2ZVdlYk1vdXNlRXZlbnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBOYXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1tOyBwYXRoID0gaW9zL05hdGl2ZVdlYk1v
dXNlRXZlbnRJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQThCOTM1MTI3
Qzc3NEUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBOEI5NDMxMjdDODgyQTAwNTc2QzJCIC8qIFdl
Ykluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNzE4
NSw2ICs3MjY1LDgxIEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCTFDOThDMDFDMjc0NDY5MjYwMDJDQ0I3OCAvKiBXZWJHUFUgKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDOThDMDU5Mjc0
NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLmNwcCAqLywKKwkJCQkxQzk4QzA0RjI3NDQ2
Q0I4MDAyQ0NCNzggLyogUmVtb3RlQWRhcHRlci5oICovLAorCQkJCTFDOThDMDkxMjc0NEJEOUEw
MDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDUyMjc0
NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAuY3BwICovLAorCQkJCTFDOThDMDU0Mjc0
NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAuaCAqLywKKwkJCQkxQzk4QzA5MjI3NDRC
RDlCMDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThD
MDUxMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwICovLAorCQkJ
CTFDOThDMDUzMjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCAqLywK
KwkJCQkxQzk4QzA4NDI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1l
c3NhZ2VzLmluICovLAorCQkJCTFDOThDMDRFMjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZm
ZXIuY3BwICovLAorCQkJCTFDOThDMDREMjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIu
aCAqLywKKwkJCQkxQzk4QzA5MDI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLm1lc3Nh
Z2VzLmluICovLAorCQkJCTFDOThDMDUwMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5k
QnVmZmVyLmNwcCAqLywKKwkJCQkxQzk4QzA1NzI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29t
bWFuZEJ1ZmZlci5oICovLAorCQkJCTFDOThDMDg5Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVD
b21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDU2Mjc0NDZDQjkwMDJDQ0I3
OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rlci5jcHAgKi8sCisJCQkJMUM5OEMwNTUyNzQ0NkNCOTAw
MkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLmggKi8sCisJCQkJMUM5OEMwOTUyNzQ0QkQ5
QjAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFD
OThDMDU4Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwICov
LAorCQkJCTFDOThDMDVBMjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIuaCAqLywKKwkJCQkxQzk4QzA5MzI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBh
c3NFbmNvZGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDNCMjc0NDZBMEEwMDJDQ0I3OCAv
KiBSZW1vdGVDb21wdXRlUGlwZWxpbmUuY3BwICovLAorCQkJCTFDOThDMDNDMjc0NDZBMEEwMDJD
Q0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUuaCAqLywKKwkJCQkxQzk4QzA4RTI3NDRCRDlB
MDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluICovLAorCQkJCTFD
OThDMDJGMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UuY3BwICovLAorCQkJCTFDOThD
MDM3Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVEZXZpY2UuaCAqLywKKwkJCQkxQzk4QzA4RjI3
NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThD
MDJBMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUuY3BwICovLAorCQkJ
CTFDOThDMDMyMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUuaCAqLywK
KwkJCQkxQzk4QzA4MjI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1l
c3NhZ2VzLmluICovLAorCQkJCTFDOThDMDFEMjc0NDZBMDMwMDJDQ0I3OCAvKiBSZW1vdGVHUFUu
Y3BwICovLAorCQkJCTFDOThDMDM4Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVHUFUuaCAqLywK
KwkJCQkxQzk4QzA5NDI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlR1BVLm1lc3NhZ2VzLmluICov
LAorCQkJCTFDOThDMDMxMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVQaXBlbGluZUxheW91dC5j
cHAgKi8sCisJCQkJMUM5OEMwMkQyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5
b3V0LmggKi8sCisJCQkJMUM5OEMwODUyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5l
TGF5b3V0Lm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDNBMjc0NDZBMDkwMDJDQ0I3OCAvKiBS
ZW1vdGVRdWVyeVNldC5jcHAgKi8sCisJCQkJMUM5OEMwMUYyNzQ0NkEwMzAwMkNDQjc4IC8qIFJl
bW90ZVF1ZXJ5U2V0LmggKi8sCisJCQkJMUM5OEMwOEIyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90
ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDIxMjc0NDZBMDQwMDJDQ0I3OCAv
KiBSZW1vdGVRdWV1ZS5jcHAgKi8sCisJCQkJMUM5OEMwMzAyNzQ0NkEwODAwMkNDQjc4IC8qIFJl
bW90ZVF1ZXVlLmggKi8sCisJCQkJMUM5OEMwODAyNzQ0QkQ5NzAwMkNDQjc4IC8qIFJlbW90ZVF1
ZXVlLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDM5Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1v
dGVSZW5kZXJCdW5kbGUuY3BwICovLAorCQkJCTFDOThDMDIwMjc0NDZBMDQwMDJDQ0I3OCAvKiBS
ZW1vdGVSZW5kZXJCdW5kbGUuaCAqLywKKwkJCQkxQzk4QzA4MzI3NDRCRDk4MDAyQ0NCNzggLyog
UmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDJCMjc0NDZBMDcw
MDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzAy
MjI3NDQ2QTA0MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oICovLAorCQkJ
CTFDOThDMDhBMjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1l
c3NhZ2VzLmluICovLAorCQkJCTFDOThDMDI2Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlci5jcHAgKi8sCisJCQkJMUM5OEMwMjcyNzQ0NkEwNjAwMkNDQjc4IC8qIFJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyLmggKi8sCisJCQkJMUM5OEMwODEyNzQ0QkQ5ODAwMkNDQjc4
IC8qIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDMz
Mjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQaXBlbGluZS5jcHAgKi8sCisJCQkJMUM5
OEMwMjkyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmggKi8sCisJCQkJ
MUM5OEMwODYyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2Vz
LmluICovLAorCQkJCTFDOThDMDI4Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLmNw
cCAqLywKKwkJCQkxQzk4QzAyQzI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5oICov
LAorCQkJCTFDOThDMDhEMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLm1lc3NhZ2Vz
LmluICovLAorCQkJCTFDOThDMDIzMjc0NDZBMDUwMDJDQ0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1
bGUuY3BwICovLAorCQkJCTFDOThDMDM0Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVTaGFkZXJN
b2R1bGUuaCAqLywKKwkJCQkxQzk4QzA4QzI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlU2hhZGVy
TW9kdWxlLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDM1Mjc0NDZBMDkwMDJDQ0I3OCAvKiBS
ZW1vdGVUZXh0dXJlLmNwcCAqLywKKwkJCQkxQzk4QzAyNTI3NDQ2QTA2MDAyQ0NCNzggLyogUmVt
b3RlVGV4dHVyZS5oICovLAorCQkJCTFDOThDMDg3Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVU
ZXh0dXJlLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDM2Mjc0NDZBMDkwMDJDQ0I3OCAvKiBS
ZW1vdGVUZXh0dXJlVmlldy5jcHAgKi8sCisJCQkJMUM5OEMwMkUyNzQ0NkEwODAwMkNDQjc4IC8q
IFJlbW90ZVRleHR1cmVWaWV3LmggKi8sCisJCQkJMUM5OEMwODgyNzQ0QkQ5OTAwMkNDQjc4IC8q
IFJlbW90ZVRleHR1cmVWaWV3Lm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDI0Mjc0NDZBMDUw
MDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmNwcCAqLywKKwkJCQkxQzk4QzAxRTI3NDQ2QTAz
MDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0SGVhcC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBXZWJH
UFU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkxQ0I3NDYxOTI3NDM2REUz
MDBGMTk4NzQgLyogV2ViR1BVICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTcyNTUsNiArNzQxMCw3IEBACiAJCQkJMUNCNzQ2NzkyNzQzOUNCMjAwRjE5ODc0
IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaCAqLywKIAkJCQkxQ0I3NDY4MzI3NDM5Q0I1MDBG
MTk4NzQgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDY5
MjI3NDM5Q0I5MDBGMTk4NzQgLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggKi8s
CisJCQkJMUM5OEMwN0IyNzQ0QjQxNjAwMkNDQjc4IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZS5oICovLAogCQkJCTFDQjc0Njk3Mjc0MzlDQkEwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGFz
c0Rlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDY4OTI3NDM5Q0I2MDBGMTk4NzQgLyogV2ViR1BV
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCAqLywKIAkJCQkxQ0I3NDY3NjI3NDM5Q0IxMDBG
MTk4NzQgLyogV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oICovLApAQCAtNzI2Miw2
ICs3NDE4LDcgQEAKIAkJCQkxQ0I3NDY0NzI3NDM3QTdGMDBGMTk4NzQgLyogV2ViR1BVQ29udmVy
dFRvQmFja2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQ0I3NDY3MTI3NDM5Q0IwMDBGMTk4NzQgLyog
V2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCAqLywKIAkJCQkxQ0I3NDY4NTI3NDM5Q0I1MDBGMTk4
NzQgLyogV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMDdFMjc0NEI5REIw
MDJDQ0I3OCAvKiBXZWJHUFVFcnJvci5oICovLAogCQkJCTFDQjc0Njg3Mjc0MzlDQjYwMEYxOTg3
NCAvKiBXZWJHUFVFeHRlbnQzRC5oICovLAogCQkJCTFDQjc0NjZGMjc0MzlDQjAwMEYxOTg3NCAv
KiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCiAJCQkJMUNCNzQ2ODYy
NzQzOUNCNTAwRjE5ODc0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCAqLywK
QEAgLTcyNzYsNiArNzQzMyw3IEBACiAJCQkJMUNCNzQ2NkMyNzQzOUNBRjAwRjE5ODc0IC8qIFdl
YkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJMUNCNzQ2NzAyNzQzOUNCMDAwRjE5
ODc0IC8qIFdlYkdQVU9yaWdpbjJELmggKi8sCiAJCQkJMUNCNzQ2QTAyNzQzOUNCRDAwRjE5ODc0
IC8qIFdlYkdQVU9yaWdpbjNELmggKi8sCisJCQkJMUM5OEMwN0MyNzQ0Qjk5MTAwMkNDQjc4IC8q
IFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCAqLywKIAkJCQkxQ0I3NDY5NDI3NDM5Q0I5MDBGMTk4
NzQgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCTFDQjc0Njk4Mjc0
MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCAqLywKIAkJ
CQkxQ0I3NDY2RDI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVUHJpbWl0aXZlU3RhdGUuaCAqLywK
QEAgLTcyOTUsOSArNzQ1MywxMiBAQAogCQkJCTFDQjc0NjZCMjc0MzlDQUYwMEYxOTg3NCAvKiBX
ZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMUNCNzQ2NzMyNzQzOUNCMTAw
RjE5ODc0IC8qIFdlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCAqLywKIAkJCQkxQ0I3NDY5NjI3NDM5
Q0JBMDBGMTk4NzQgLyogV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCisJ
CQkJMUM5OEMwNzkyNzQ0QTFDQzAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgg
Ki8sCisJCQkJMUM5OEMwN0EyNzQ0QTIwNTAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZExpbWl0
cy5oICovLAogCQkJCTFDQjc0Njc1Mjc0MzlDQjEwMEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJlQmlu
ZGluZ0xheW91dC5oICovLAogCQkJCTFDQjc0NjgxMjc0MzlDQjQwMEYxOTg3NCAvKiBXZWJHUFVU
ZXh0dXJlRGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NjgwMjc0MzlDQjQwMEYxOTg3NCAvKiBX
ZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA3RDI3NDRCOUI3MDAy
Q0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmggKi8sCiAJCQkJMUNCNzQ2NzIyNzQzOUNC
MDAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZS5oICovLAogCQkJCTFDQjc0NjhGMjc0
MzlDQjgwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCAqLywKIAkJCQkxQ0I3
NDY5QTI3NDM5Q0JCMDBGMTk4NzQgLyogV2ViR1BVVmVydGV4U3RhdGUuaCAqLywKQEAgLTc2ODYs
NiArNzg0Nyw5IEBACiAJCQkJMkQ4NTA4QzQyMTJFMzNFQzAwMEVGNDZDIC8qIFVuaWZpZWRTb3Vy
Y2U5OC5jcHAgKi8sCiAJCQkJMkQ4NTA4QjEyMTJFMzNFOTAwMEVGNDZDIC8qIFVuaWZpZWRTb3Vy
Y2U5OS5jcHAgKi8sCiAJCQkJMkQ4NTA4QkUyMTJFMzNFQjAwMEVGNDZDIC8qIFVuaWZpZWRTb3Vy
Y2UxMDAuY3BwICovLAorCQkJCTFDNTY1NTdDMjc0NUM1QTAwMDYzMDBBRiAvKiBVbmlmaWVkU291
cmNlMTAxLmNwcCAqLywKKwkJCQkxQzU2NTU3RDI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNv
dXJjZTEwMi5jcHAgKi8sCisJCQkJMUM1NjU1N0UyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRT
b3VyY2UxMDMuY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSAidW5pZmllZC1zb3VyY2VzIjsKIAkJ
CXBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMiOwpAQCAtOTA1
MSw2ICs5MjE1LDcgQEAKIAkJNTUwNjQwQTEyNDA3MUEyOTAwQUFFMDQ1IC8qIGdyYXBoaWNzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzk4QzAxQzI3
NDQ2OTI2MDAyQ0NCNzggLyogV2ViR1BVICovLAogCQkJCUY0MDk0Q0JDMjU1MzA0QUYwMDNENzNF
MyAvKiBEaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5jcHAgKi8sCiAJCQkJRjQwOTRDQkIyNTUzMDRB
RjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggKi8sCiAJCQkJN0IxNjE5MTMy
NzE5QUU3NjAwQzQwRUFDIC8qIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oICovLApAQCAt
MTQ3MTIsNiArMTQ4NzcsOSBAQAogCQkJCTJEODUwOEQ4MjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlm
aWVkU291cmNlOTguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4NTA4QzUyMTJFMzNFRDAwMEVG
NDZDIC8qIFVuaWZpZWRTb3VyY2U5OS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDg1MDhEMjIx
MkUzM0VEMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTEwMC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQzU2NTU3RjI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQzU2NTU4MDI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEw
Mi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzU2NTU4MTI3NDVDNUExMDA2MzAwQUYgLyogVW5p
ZmllZFNvdXJjZTEwMy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBE
MjM3NEYgLyogVXNlckludGVyZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFC
MEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5jcHAKaW5kZXggZjYzNDg0NmI5
NTU3M2Q1MzQ2ZDg2YjhkYjZkYjlkMzQ0MzVkMTE3My4uZGE0YmQxMTBiYzM3ZmEwYWIyMjU5Zjc3
ODFmMGFjMzlmN2ZkNDE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3Bw
CkBAIC00Miw3ICs0Miw3IEBAIFJlbW90ZUFkYXB0ZXJQcm94eTo6flJlbW90ZUFkYXB0ZXJQcm94
eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlQWRhcHRlclByb3h5OjpyZXF1ZXN0RGV2aWNlKGNvbnN0
IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+KT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3Rl
QWRhcHRlclByb3h5OjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpE
ZXZpY2U+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
ICAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJv
eHkuaAppbmRleCA2ZTg1NDNiMTA1YjliNTQ5YmY2OGY2ODkwMTg2MGU4N2E5YmExZjE1Li44MzNi
YjNlZTM1OWQxYmI4ODRiZjc5OWU5NTlhZmVhNTk0Nzc4NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVBZGFwdGVyUHJveHkuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViR1BV
SWRlbnRpZmllciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKLSAgICB2
b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+KT4mJikgZmluYWw7Cisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9y
JiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiYmKT4mJikgZmlu
YWw7CiAKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZp
Y2U+KT4+IG1fY2FsbGJhY2tzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNw
cAppbmRleCAzZmQ4NTczNDc1NGNkYzBlMWMxZDFmMTZjMGE3ZWI1NjQ2MTBmMDI3Li5hMjc5ZDQ2
YzFkODZjODdiNmNmMWUxOWI4MzBjMjU4OTBiMWIyZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVRleHR1cmVQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgUmVtb3RlVGV4dHVyZVByb3h5Ojp+
UmVtb3RlVGV4dHVyZVByb3h5KCkKIHsKIH0KIAotUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmll
dz4gUmVtb3RlVGV4dHVyZVByb3h5OjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8
UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBSZW1vdGVUZXh0dXJlUHJveHk6OmNyZWF0ZVZpZXco
Y29uc3Qgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYg
ZGVzY3JpcHRvcikKIHsKICAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CiAgICAgcmV0dXJu
IFJlbW90ZVRleHR1cmVWaWV3UHJveHk6OmNyZWF0ZShtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmgKaW5kZXggNWZhZDgxYjZiZDk0ZGQ5
NGVlODQ0ZTgwNTIxODVlN2ZlNDljODVlMS4uYTM4Y2YzNDNmMzlkZTM1ODFlNmU0YTkxNjI5ZThh
MmNlODk0YTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmgKQEAgLTU5LDcg
KzU5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkdQVUlkZW50aWZpZXIgYmFja2luZygpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCi0gICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmll
dz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmll
d0Rlc2NyaXB0b3I+JikgY29uc3QgZmluYWw7CisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJl
Vmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJl
Vmlld0Rlc2NyaXB0b3I+JikgZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsKIAo=
</data>
<flag name="commit-queue"
          id="469701"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444627</attachid>
            <date>2021-11-17 18:58:12 -0800</date>
            <delta_ts>2021-11-17 21:27:25 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233247-20211117185811.patch</filename>
            <type>text/plain</type>
            <size>467381</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlOTU1YzRk
MzViZmFiZjA1YzU1NmIxZmM1NGJjZTBjMmY0NmYzOWZlLi4yMjA4ZTBjYmQ1NWE0MWI4MTE1ZmMx
NmE3MTBiMDlkNTUwMzY4NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAor
MjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
dG8gdGhlIGVudW0gY2xhc3Nlcywgc28gdGhleSBjYW4gYmUgc2VyaWFsaXplZC4KKworICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHA6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6QWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2UpOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oOgorICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaDoKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg6CisgICAgICAgICogcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVMb2FkT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU1hcE1vZGUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
U3RhdGlzdGljTmFtZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93
ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNv
ZGVyLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RvcmFnZVRleHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0b3JlT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3Qu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24u
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lv
bi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oOgor
CiAyMDIxLTExLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQXBwbGUgUGF5XSBoYW5kbGUgdW5rbm93biBzZXR1cCBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
ZjkzNmE3MzIxN2Y4NmI1NDU3NTU5Y2VkOTRiN2MzMDc4MTMzNDU2Li41YWNlMjVlOTg5MDA0MmEx
Yzg1NWY5M2M2NWQyYTQzOGU0YzQxMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MCBAQAorMjAy
MS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIGNsYXNzZXMgaW4gR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUgdG8gcmVjZWl2ZSBXZWJHUFUncyBJUEMgbWVzc2FnZXMu
CisgICAgICAgIEVhY2ggb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGFuIGFzc29jaWF0ZWQgbWVz
c2FnZXMuaW4gZmlsZS4gRWFjaCBvZiB0aGVzZSBvYmplY3RzCisgICAgICAgIGhvbGRzIGEgYmFj
a2luZyBQQUw6OldlYkdQVSBvYmplY3Qgd2hpY2ggaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlv
bi4gVGhlIG1ldGhvZHMKKyAgICAgICAgdGhhdCByZWNlaXZlIHRoZSBJUEMgbWVzc2FnZXMgYXJl
IGN1cnJlbnRseSB1bmltcGxlbWVudGVkLCBidXQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoCisgICAg
ICAgIHRoZXknbGwganVzdCBmb3J3YXJkIG9uIHRoZSBjYWxscyB0byB0aGVpciBiYWNraW5nIFBB
TDo6V2ViR1BVIG9iamVjdC4KKworICAgICAgICBUaGlzIGFsc28gYWRkcyBzZXJpYWxpemF0aW9u
IHJvdXRpbmVzIGZvciBhbGwgdGhlIHN0cnVjdHMgaW4gU2hhcmVkL1dlYkdQVS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgKHlldCku
IFdlJ3JlIHZlcnkgY2xvc2UsIHRob3VnaCEhISEKKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5
LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUFkYXB0ZXI6On5SZW1vdGVBZGFwdGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCaW5kR3JvdXA6OlJl
bW90ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6flJlbW90
ZUJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6c2V0TGFiZWwp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QmluZEdyb3VwLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmguCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cExheW91dDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0Ojp+UmVtb3RlQmluZEdyb3Vw
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0OjpzZXRMYWJl
bCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZlcjo6UmVtb3RlQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQnVmZmVyOjptYXBBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUJ1ZmZlcjo6dW5tYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVBy
b3h5LmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVDb21tYW5kQnVmZmVyOjpSZW1vdGVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
Q29tbWFuZEVuY29kZXI6OlJlbW90ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJl
VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmZpbGxC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cHVzaERlYnVn
R3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdH
cm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1
Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRp
bWVzdGFtcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZl
UXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmluaXNo
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OnNldExhYmVsKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21t
YW5kRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjp+UmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmRpc3BhdGNoSW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRl
UGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dy
b3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1
Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjppbnNl
cnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGlu
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNv
bXB1dGVQaXBlbGluZTo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZS5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQaXBlbGluZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURldmljZTo6UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNl
Ojp+UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
ZXZpY2U6OmltcG9ydEV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURl
dmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2
aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1
dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVh
dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRl
UmVuZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3Jl
YXRlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OnB1c2hFcnJvclNj
b3BlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0
dXJlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVFeHRlcm5hbFRleHR1
cmU6OlJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4dGVy
bmFsVGV4dHVyZTo6flJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUV4dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVHUFUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVTo6
UmVtb3RlR1BVKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjp+UmVtb3RlR1BVKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5
b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91
dDo6UmVtb3RlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGlu
ZUxheW91dDo6flJlbW90ZVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5
U2V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6UmVt
b3RlUXVlcnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6flJlbW90ZVF1
ZXJ5U2V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVR
dWV1ZTo6UmVtb3RlUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6flJlbW90
ZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OnN1Ym1pdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UXVldWU6OndyaXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpjb3B5
RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpz
ZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVldWUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlOjpSZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6On5SZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGU6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpz
ZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6
OnNldEluZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXI6OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlcjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6On5SZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3SW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxSZWZlcmVuY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5PY2NsdXNp
b25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjplbmRP
Y2NsdXNpb25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjpSZW1vdGVSZW5kZXJQaXBl
bGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVu
ZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0
QmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGlwZWxpbmU6
OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQaXBlbGluZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2Rl
LmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTaGFk
ZXJNb2R1bGU6OlJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNo
YWRlck1vZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2hhZGVyTW9kdWxlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
dXJlOjp+UmVtb3RlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6OmNy
ZWF0ZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVWaWV3LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6UmVtb3RlVGV4dHVyZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmll
dzo6flJlbW90ZVRleHR1cmVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZVZp
ZXc6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpPYmplY3RIZWFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21C
YWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Qmlu
ZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21w
dXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9tQmFja2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5
b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNv
bnZlcnRRdWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmpl
Y3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZy
b21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0
UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVG
cm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVy
dFRleHR1cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaDogQWRkZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkJsZW5kU3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Qmxl
bmRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJp
bmRpbmcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkNvbG9yRGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b2xvckRpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRh
cmdldFN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1h
bmRFbmNvZGVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkRlcHRoU3RlbmNpbFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkRlcHRoU3RlbmNpbFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRldmlj
ZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGV2
aWNlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUVy
cm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVudDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0REaWN0OjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNERGljdDo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkZyYWdtZW50U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6RnJhZ21lbnRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXI6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VD
b3B5VGV4dHVyZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weVRleHR1cmVUYWdnZWQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Oklt
YWdlQ29weVRleHR1cmVUYWdnZWQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZURh
dGFMYXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VE
YXRhTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjJERGljdDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9yaWdpbjNERGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpPcmlnaW4zRERpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok91dE9mTWVtb3J5RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T3V0T2ZNZW1vcnlFcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpQaXBlbGluZURlc2NyaXB0b3JCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpRdWVyeVNldERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rl
ckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVu
ZGVyUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0xheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQ
YXNzTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9uczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRv
cjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3Rh
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
RmVhdHVyZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9y
dGVkRmVhdHVyZXM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVk
TGltaXRzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRl
ZExpbWl0czo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVC
aW5kaW5nTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlw
dG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNj
cmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNj
cmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVW
aWV3RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZh
bGlkYXRpb25FcnJvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dDo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlZlcnRleFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZUFkYXB0ZXJQcm94eTo6cmVxdWVzdERldmljZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQ
cm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVU
ZXh0dXJlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZVRleHR1cmVQ
cm94eTo6Y3JlYXRlVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlVGV4dHVy
ZVByb3h5OjpjcmVhdGVWaWV3IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5Lmg6CisKIDIwMjEtMTEtMTcg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9tZW50
dW0gYW5pbWF0b3Igc29tZXRpbWVzIHN0YXJ0cyB0aGUgYW5pbWF0aW9uIGF0IGEgdmVyeSBoaWdo
IHZlbG9jaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCmluZGV4IGM0ODA1ZGQ5
ODYxMTk3ZWU5NWU1MzZmM2I1MGY1N2RhNjQ2OWFhMTQuLjIzZjVjOWFjZjA5MWRkODdkMzM1MDkw
MWY0NWVhMDU2ZjJmY2ExYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBA
IC0xNDUsNyArMTQ1LDcgQEAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3RE
ZXZpY2VTdGF0dXMgc3RhdHVzLCBXR1BVRGV2aWNlIGRldmljZSwgY28KICAgICBhZGFwdGVyLT5y
ZXF1ZXN0RGV2aWNlQ2FsbGJhY2soc3RhdHVzLCBkZXZpY2UsIG1lc3NhZ2UpOwogfQogCi12b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+JiYgY2FsbGJhY2spCit2b2lk
IEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwuaAppbmRleCAzNDkyNGFjNjg5Yjc5OWY2OWY0OGYxNmY0ZjAxNWVkOWM1NzAxNDA4Li5lODRl
ZDRhODViNmJjM2U0MjEzZDgzN2Q5MThhN2MxNmRmOTgyYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVB
ZGFwdGVySW1wbC5oCkBAIC01OCw5ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0
RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNj
cmlwdG9yJiwgV1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OmZ1bmN0aW9u
PHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpmdW5jdGlv
bjx2b2lkKFJlZjxEZXZpY2U+KT4+IG1fY2FsbGJhY2tzOworICAgIERlcXVlPFdURjo6ZnVuY3Rp
b248dm9pZChSZWY8RGV2aWNlPiYmKT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV0dQVUFkYXB0ZXIg
bV9iYWNraW5nIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4dD4g
bV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29u
dmVydFRvQmFja2luZ0NvbnRleHQuaAppbmRleCAzMWY0NTRiYmRkNDlhNzliYzM3ZmNiODcxMzk0
NjU5Y2ZlZDBkOTJjLi4zYzliNWM3YjRkNTgzZDJhNjcyOGJiZDcyNzNiNWJiMjYwYzYyZDM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKICNpbmNsdWRl
ICJXZWJHUFVUZXh0dXJlVXNhZ2UuaCIKICNpbmNsdWRlIDxXZWJHUFUvV2ViR1BVLmg+CisjaW5j
bHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5oCmluZGV4IDJiMThmOWI2
OGQyM2ZiYmIwZTM4MjkzYTFjOTVlMGNmNTk3YTk2NmQuLjMzODNlYTEzNjk0Y2M5ZjA3OTQ1MzBl
MDhiMGIyYzI0YTU2Y2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVVGV4dHVyZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIFdHUFVUZXh0dXJlIGJhY2tpbmcoKSBjb25zdCB7
IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBjb25zdCBmaW5hbDsK
KyAgICBSZWY8VGV4dHVyZVZpZXc+IGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0
dXJlVmlld0Rlc2NyaXB0b3I+JikgZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oCmluZGV4IGUyZDljNjFkMGVmY2Y1YTZmYzMzN2JkNmFjZDkxOWNlOTEyYmUw
NzEuLjUwN2M0YWFjNDc2ZDgxYmUzNTI5YTM4Yjg5MTY1NjE1ZTA4NjRkZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVy
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRz
KCkgY29uc3QgeyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8RGV2aWNlPik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmlj
ZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+
JiYpPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBZGFwdGVyKFN0cmluZyYmIG5hbWUsIFN1
cHBvcnRlZEZlYXR1cmVzJiBmZWF0dXJlcywgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMsIGJvb2wg
aXNGYWxsYmFja0FkYXB0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaAppbmRleCA2N2JhZDViOWRmODk1
NGE0MDRmOTcwZGZmOWU1MzBhZWFhNTc3Y2QxLi40Y2FkZmE2NWRkNzAwY2MwYTFhNTlmYzRkMGJj
MjkzMjU3ODI4ZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkZHJlc3NNb2RlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVt
IGNsYXNzIEFkZHJlc3NNb2RlIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGUsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpBZGRy
ZXNzTW9kZTo6UmVwZWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJv
clJlcGVhdAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rv
ci5oCmluZGV4IGZlZDVlODFlNjgzYTg1ODg1ODk5OTc0YjRhNmQ0OGI3NDFhODQ0ZDguLjIwMjJi
ODA3MmJiNzRkNzBiZjQ5Y2ViMWU5YWY2OGE2Njk5ZTEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3Iu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTQ2LDMgKzQ3LDI2IEBAIGVudW0gY2xhc3MgQmxlbmRGYWN0b3IgOiB1aW50OF90IHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3RvciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvLAorICAgICAgICBQ
QUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6Ok9uZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5k
RmFjdG9yOjpTcmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNT
cmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGEsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNTcmNBbHBoYSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZh
Y3Rvcjo6T25lTWludXNEc3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6RHN0
QWxwaGEsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lTWludXNEc3RBbHBo
YSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpTcmNBbHBoYVNhdHVyYXRlZCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpDb25zdGFudCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50CisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kT3BlcmF0aW9uLmgKaW5kZXggMWY2MDBjOGRh
YmNhYTc1NzAzMGQ1NzIxOTM4ZjQwZDY0MTFhZjIyMC4uODZhMGI5ZGQ5YzM2OGEzOTU0YmYyNzRm
MWUxZDE5OTU2MTNlYTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzks
MTggQEAgZW51bSBjbGFzcyBCbGVuZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9u
LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OkFkZCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpTdWJ0cmFjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkJsZW5kT3BlcmF0aW9uOjpSZXZlcnNlU3VidHJhY3QsCisgICAgICAgIFBBTDo6V2ViR1BVOjpC
bGVuZE9wZXJhdGlvbjo6TWluLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246
Ok1heAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nVHlwZS5oCmluZGV4IDBhMGFkNjZiMDFkNDM2MGE5NzhhNzBhZTA4NTZjYTk1ZjkxN2Uz
ZDcuLjQ0MWI3MjhkNmE0MjAyOTY5ZTE3MDJhY2QzMjNhZDVkNzU3Zjg0YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyQmluZGluZ1R5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQnVmZmVy
QmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BV
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6
V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlOjpVbmlmb3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6QnVmZmVyQmluZGluZ1R5cGU6OlN0b3JhZ2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZm
ZXJCaW5kaW5nVHlwZTo6UmVhZE9ubHlTdG9yYWdlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQnVmZmVyVXNhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmgKaW5kZXggNTQwMTFmNDMzNzE1ZTRkYjE5ZTJiMGFh
YjVlMjgxYzg3NzEwYjM1Mi4uZDU1ZWNmYzQ2NWRjNTg4NjMzZDdjMmNlNDQ1NDE3OGU2MzhhNmEz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyVXNhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCiB1c2luZyBCdWZmZXJVc2FnZUZsYWdzID0gdWludDMyX3Q7Ci0KIGNsYXNz
IEJ1ZmZlclVzYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8QnVmZmVyVXNhZ2U+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgTUFQX1JFQUQgICAgICA9IDB4MDAw
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCmluZGV4
IDA5MWNhZGFiNDEyNDk3YzljOGQ0N2YzMDU4YjQ1OGM0NjdhYWNiMDMuLjQ0ODQyZmMzOWY5ZGRm
MzA5ZTgyOWMxMTI5YmY0YTBiMGRkNGViYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVz
cGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgQ2FudmFz
Q29tcG9zaXRpbmdBbHBoYU1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3Np
dGluZ0FscGhhTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxw
aGFNb2RlOjpPcGFxdWUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0Fs
cGhhTW9kZTo6UHJlbXVsdGlwbGllZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXBhcmVGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKaW5kZXggNmNiZWEzZDU4NDY5NGIwNDQzZGU3YmQ0
NWI2ODQ1YTcwYjQ5OTM1OC4uYjhlNzQxYjdkYjAzNjU3NjI2YTI5ZDI3N2U5YjA0NWUxNGZiNzY5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGFyZUZ1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5o
PgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC00MSwzICs0MiwyMSBAQCBlbnVtIGNs
YXNzIENvbXBhcmVGdW5jdGlvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246Ok5ldmVyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6Q29tcGFyZUZ1bmN0aW9uOjpMZXNzLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1
bmN0aW9uOjpFcXVhbCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyLAor
ICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlckVxdWFsLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpBbHdheXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgKaW5kZXgg
YTQ2MzUyNDQxZWE3N2RkYTIyZGJjZjJjODIxMWU0YzkwZTkzYTQyOS4uM2EyZjA1MGIyNzQyMmIz
NzI2YzQzZDNkZTkzM2JmNTFkY2Q0ZWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6
OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQ29tcGlsYXRpb25NZXNz
YWdlVHlwZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yLAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkluZm8KKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cExvY2F0aW9uLmgKaW5kZXggZjA4MTllMDE0Y2Q5ZGRhYmFiZjBlM2JmYjZkM2ZkZGE3MDYwOGJi
Yy4uZWM3MTdiN2NiNWM0OTU2ZWQ2ODMzMDBhNDE4ODM5MjdjMWFhNmU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiA6IHVpbnQ4X3Qgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkJlZ2lubmluZywKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb246OkVuZAorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oCmluZGV4IDhlNTI3N2JmZjliZjBl
NTYxMjhkYWNkZGY5NjgxZDY3OWQ3ZTQ5MzIuLjRjODdkMDc3MzkxYWNkNjE1ZDA2MWVmNTkwMWEx
MDVmNzBkODBkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUN1bGxNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAK
IG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3Mg
Q3VsbE1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisK
K25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2Vi
R1BVOjpDdWxsTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpDdWxsTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkN1bGxNb2RlOjpO
b25lLAorICAgICAgICBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkZyb250LAorICAgICAgICBQQUw6
OldlYkdQVTo6Q3VsbE1vZGU6OkJhY2sKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVEZXZpY2VMb3N0UmVhc29uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmgKaW5kZXggYWNkYmZmNmQ4OTQ5YTBlYzI5NmRj
NWVjZjM3NTMyZTJlZmEwM2NmZC4uYjQxZWM0MDQyNTJlNWMyOWZhNzE5N2U5ODlkYzg4MmQzNGM2
YWEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVu
dW0gY2xhc3MgRGV2aWNlTG9zdFJlYXNvbiA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8UEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb24+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbiwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZAorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvckZpbHRlci5oCmluZGV4IDgyNmJk
YWI1YmMxZDlmODU1YTlmOTEyZDAyYzllYzQ1NGVhOWRkNDAuLmVlZGQ4NzE0ZDQ4ZDE3M2M5MDU3
NTM5YzI5OGExZmRmMDA2ODA2OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgRXJyb3JGaWx0ZXIgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcj4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlciwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkVycm9yRmlsdGVyOjpWYWxpZGF0aW9uCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRmVhdHVyZU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUZlYXR1cmVOYW1lLmgKaW5kZXggMGQ1ODcwYmM4MDkxMGJjNTkzYWZhZmRjNDAz
ZDRlOTk4ZWI0OTFkMi4uNmEzMzU4OWQ4OTQ5ZmE4NDc2YzE0ZGI3ZmQzNTg0OWFmZjczZjM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmVhdHVyZU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVGZWF0dXJlTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNDIsMyArNDMsMjIgQEAgZW51bSBjbGFzcyBGZWF0dXJl
TmFtZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6
OkZlYXR1cmVOYW1lPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5h
bWU6OkRlcHRoQ2xpcENvbnRyb2wsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
RGVwdGgzMmZsb2F0U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6
UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uQmMsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFt
ZTo6VGV4dHVyZUNvbXByZXNzaW9uRXRjMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVO
YW1lOjpUZXh0dXJlQ29tcHJlc3Npb25Bc3RjLAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVy
ZU5hbWU6OlRpbWVzdGFtcFF1ZXJ5LAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6
OkluZGlyZWN0Rmlyc3RJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUZpbHRlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZpbHRlck1vZGUuaAppbmRleCA4YmM4ODEyMjA1Y2U4MmI1Yzg0Y2E3ZTRiNTUxMzJhNmFk
MTY0OGU3Li4xYWZiM2ZhNWU1MTJmZWVlMDA5NmMxZTFhOWNhMjAxY2M5ZGEzY2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJN
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RmlsdGVyTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBGaWx0ZXJNb2RlIDogdWlu
dDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RmlsdGVyTW9k
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BV
OjpGaWx0ZXJNb2RlLAorICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVyTW9kZTo6TmVhcmVzdCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkZpbHRlck1vZGU6OkxpbmVhcgorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKaW5kZXggN2MzYTA5NTZiM2Q1NTZlMWMz
YzJlZjZiZDE5ZjEzYTlkOGU1OTBhNy4uZmY2NWIxMDA3ZWQzOTJhNjFjZDViMDM0YzA2MmMyYmU2
MTI1MzdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRnJvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNSwzICszNiwxNSBAQCBlbnVtIGNsYXNzIEZy
b250RmFjZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OkZyb250RmFjZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFBBTDo6V2ViR1BVOjpGcm9udEZhY2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpGcm9udEZhY2U6
OkNDVywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZyb250RmFjZTo6Q1cKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
LmgKaW5kZXggNjdhZmU4MTFlYjhkODhiYmMyYThiYjllZTQ1OGNiZDBkMTYwZWZjNC4uOTU1ZjA5
N2RjZjAwZDQwMWQwMDk2MDc4MGZhM2IyNjY4Y2U1ZjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6
dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBz
b3VyY2U7CisgICAgLy8gRklYTUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9u
YWw8T3JpZ2luMkQ+IG9yaWdpbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbmRleEZvcm1hdC5oCmluZGV4IGU2ZDRi
Y2IzMjNjYWI1Yzc1YjczMGIwMjhjMzU4M2M3ZmI2MGViYTYuLmFkOTU2ZTcyZGQ4Nzc3NDIxNWQ1
Yjk4NjU3NGUxNmVlODZhMTAwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1
IEBAIGVudW0gY2xhc3MgSW5kZXhGb3JtYXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0OjpVaW50MTYsCisgICAgICAgIFBBTDo6V2ViR1BVOjpJ
bmRleEZvcm1hdDo6VWludDMyCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTG9h
ZE9wLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2Fk
T3AuaAppbmRleCBkODFmODlmMDllOWI2NmE3M2IxNjIxMTY5ZjQ2YWEyNDdlZWVlOTRjLi5kYzgy
NjBkNzMzMGQ2OGQ4NDg1ZWE3NjlmMmQwZWMwZWE1OTAxNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMg
KzM1LDE0IEBAIGVudW0gY2xhc3MgTG9hZE9wIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6TG9hZE9wPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkxvYWRPcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkxvYWRPcDo6TG9hZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1v
ZGUuaAppbmRleCA2Y2QxOWQ1Mzc2ZWY3MWJkMzUxMDU1YjkyMTMzYmQzMWI2YjJlOWE4Li5mMTdm
Yzc3NjM1YmZmZWY3MjA2MTNjZTVjMDNjZGIwMzA1OTE4YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oCkBAIC0z
Miw3ICszMiw2IEBACiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiB1c2luZyBNYXBNb2RlRmxh
Z3MgPSB1aW50MzJfdDsKLQogY2xhc3MgTWFwTW9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1hcE1v
ZGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEZsYWdzQ29uc3RhbnQgUkVBRCAg
PSAweDAwMDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCmluZGV4IDJl
OGFlZWE5Mjk3YTczZWEyYThmY2VlNDFhNTc3MDgxOTAwNmQ5OTQuLmJmOTNmNjc5MDA0YWRjNjAz
MDc1OWU1ZWMzOTM3OGFkZDVkOTRjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlz
dGljTmFtZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQaXBlbGluZVN0YXRpc3RpY05h
bWUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQ
aXBlbGluZVN0YXRpc3RpY05hbWU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lLAorICAgICAgICBQQUw6
OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9ucywK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZTo6Q2xpcHBlckludm9j
YXRpb25zLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlw
cGVyUHJpbWl0aXZlc091dCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGlj
TmFtZTo6RnJhZ21lbnRTaGFkZXJJbnZvY2F0aW9ucywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lU3RhdGlzdGljTmFtZTo6Q29tcHV0ZVNoYWRlckludm9jYXRpb25zCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93ZXJQcmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAppbmRleCAx
NjUzNWM2MWZiMTRiMmMwMmY2MDMyZGNkOWNjMjgwYzk0YTYxMjQwLi4zMDYwODk3Y2Y5ZWEzMmQ0
NzJkYTg2Mjg2ZWE1Njg5ODI0NzBmZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAg
LTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBv
d2VyUHJlZmVyZW5jZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6TG93
UG93ZXIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3Jt
YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNw
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oCmluZGV4IDk0MzAwODA0MDAyYTZjMDJkMThlZTcxYzVhODMzMWM3
MDBhZGZkNTcuLmZhN2QxZTFlZjViYzM4MmU1M2I3ZjdjZjI1MzZmMzRkZDI5ODUxZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRl
ZmluZWRDb2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM0LDMgKzM1LDE0IEBAIGVudW0g
Y2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29s
b3JTcGFjZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdC
CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVRv
cG9sb2d5LmgKaW5kZXggZTRkMGYyYWUyMmJjNjQ1YzQwMzJhNjk1MWZhNDVkNzUzYTVhZTYwYy4u
YjUwY2Y5MzA0YWIyZTE0MjQwZThhNzQ4ZDRhMDY5NjNkNGQ2ZjZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
cmltaXRpdmVUb3BvbG9neS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFzcyBQcmltaXRpdmVU
b3BvbG9neSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJH
UFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5LAorICAgICAgICBQQUw6Oldl
YkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlBvaW50TGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lTGlzdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlByaW1p
dGl2ZVRvcG9sb2d5OjpMaW5lU3RyaXAsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVU
b3BvbG9neTo6VHJpYW5nbGVMaXN0LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9w
b2xvZ3k6OlRyaWFuZ2xlU3RyaXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWVyeVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oCmluZGV4IDA1OTFmYjM1NDZhZmU2MzMwOWE3OTY3ZDVmOTA0MDlkODc3MWQ1
NGUuLmNjMzBkNDg4M2ZmMmRlMDZlZDlkOGJjOGM5OTJjNWRiODFjNjNkZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5
VHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBRdWVyeVR5cGUgOiB1aW50OF90IHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlU
eXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlUeXBlOjpPY2NsdXNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU6OlBpcGVsaW5lU3RhdGlzdGljcywKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlF1ZXJ5VHlwZTo6VGltZXN0YW1wCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVF1ZXVlLmgKaW5kZXggZTE2ZTkzZGUxNjgyZTRiNTg5ZjIwYTk0ZWVhZDg2MzlmNjFh
ZmRmMC4uNmY4ZjhmODEwYjhkMDFhMTI4YzZiZGVmY2RlMzJjZjVhNDA5MjM4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgogI2luY2x1ZGUgIldlYkdQ
VUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggNWExMGM1ZjIxNjZkMGM1OGI3NDI0
NGZjY2RmODIwNWFjODY1NTZjZC4uMmQ3NWZmY2U4YmI4MTA0NGM5MGZjMDU4MjdlZDA5YzYwYzFi
NWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIldlYkdQVUluZGV4Rm9ybWF0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50
ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIK
KyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmgKaW5kZXggMWU3NmJhNzdiODQwYTEwN2Y2YzExNjEyZTgyNzNiZjMyM2VlNzMyZC4u
NzM1MmVhMWRkOGI5NTNiMjVmNTgyNDY2ZWFhNzc5NmVlNWRmMjJmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29s
b3IuaCIKICNpbmNsdWRlICJXZWJHUFVJbmRleEZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdQVUlu
dGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcExvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCBhYjVmYTAxOTg5NmFk
MDQ4ZDc1MjJkMDA5YTM3YjhjMTRkMzNlZWQxLi4yMDM4NzY4ZjQzNTc2YjE3NjE4YjQyMzdiNzJk
OWE5MzcwMjFmMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
TG9jYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CiAKQEAgLTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgUmVuZGVyUGFzc1RpbWVzdGFt
cExvY2F0aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2Nh
dGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6
QmVnaW5uaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0
aW9uOjpFbmQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oCmluZGV4IDE4Y2FkYzBlMDcwNjA3YTQ0MTUyMjIxN2QxMjFmYjVi
NDEwMmZmMDAuLmE0OTJjZTY2ZGY1YTEzNGQwZTA4ZmEzNTQxODQ2ODJjMjczYzNmMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBTYW1wbGVyQmluZGluZ1R5cGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlLAor
ICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlOjpGaWx0ZXJpbmcsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU6Ok5vbkZpbHRlcmluZywKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbgorICAgID47Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaAppbmRl
eCA5MDY5YmI3ZWYyZDQyZGU2ZDc5YmNiODFkYTNhNzE5NDQzMDJlNDQ5Li5iYTBjNmY1NmJlODk1
ODk0ZWJhOWJlYjI0N2ZlOWU3MzA3OTEzMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsK
IApAQCAtNDEsMyArNDIsMjEgQEAgZW51bSBjbGFzcyBTdGVuY2lsT3BlcmF0aW9uIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbjo6S2VlcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm8s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlLAorICAgICAg
ICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW52ZXJ0LAorICAgICAgICBQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50Q2xhbXAsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRDbGFtcCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlN0ZW5jaWxPcGVyYXRpb246OkluY3JlbWVudFdyYXAsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRXcmFwCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgKaW5kZXggNzJi
NzY4MTVjZGVjYTA3NGY1Yjg0ZWE4MjUwMDllMmM5ZDc1ZTgxNi4uZTQ3ZTdiOWY0YTkxMDdmNGY4
ZjEyMTYzZjJlNzFhZjk2MjQxNjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBTdG9yYWdlVGV4dHVyZUFjY2VzcyA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzLAorICAgICAgICBQQUw6OldlYkdQ
VTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M6OldyaXRlT25seQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JlT3AuaAppbmRleCA5NzBjYmZiZGQyZWYzNDViODkwOWJmYzVmYzY3
NTYwMzc1ODkzZDIxLi45OTQ0ZDhiYzIwMjkxY2RlODg1ZjI0YWI1YjJkOTgzNWY3ZDc0NGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
dG9yZU9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmVPcC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBTdG9yZU9wIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RvcmVPcD4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9y
ZU9wLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcDo6U3RvcmUsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTdG9yZU9wOjpEaXNjYXJkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZS5oCmluZGV4IDA1YzkyZWUwOGNiYmU3NDhjMGY2MWNlNTU3NTU0NGYzYjk4NDM2
YjcuLmQ1MmVkMTJhODIxMjNkMDE3NDdhNmY1NTc0Nzg4NTcyMDZhYTc1NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBzZXRMYWJlbEludGVybmFsKG1f
bGFiZWwpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUmVmPFRleHR1cmVWaWV3PiBjcmVhdGVWaWV3
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlv
bmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oCmluZGV4IDc5YmVhMGNkOGMxN2U5
YzE4NjA0ZjQxMTVjZWMxZDhjYWQ4YTViYmEuLjU2MThjZmViNzUxODlkZDNiNmNkNmNkMzg0ODkz
YThhZDY1YWNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRy
YWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBl
bnVtIGNsYXNzIFRleHR1cmVBc3BlY3QgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0PiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0OjpBbGwsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlQXNwZWN0OjpTdGVuY2lsT25seSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVB
c3BlY3Q6OkRlcHRoT25seQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVEaW1lbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmVEaW1lbnNpb24uaAppbmRleCA0NzU0MTA3ZWU1YjM4MTljYzljODJmODQ3ZGU2
YmM0Y2RlMGQxOWRmLi41M2EyZTc5ZWNlN2IwNTJlOWE1ZGY0NjIxZDU0MDIzYjI5ZjM0NTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGltZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFz
cyBUZXh0dXJlRGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6
OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZURpbWVuc2lvbjo6XzJkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZURp
bWVuc2lvbjo6XzNkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZv
cm1hdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZUZvcm1hdC5oCmluZGV4IDNjOGFhNmM0ODUzYTg1NDAyODZlMzgwYjE5ZmNmMTYxN2ZhMzJk
NWYuLjYyNTk0NjAwNWYwZTg2M2FmOTAzMjgxNjViMzg4OTEyZGQ3NTAyNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3Jt
YXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRm9ybWF0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUgewogCkBAIC0xNTMsMyArMTU0LDEwOCBAQCBlbnVtIGNsYXNzIFRleHR1cmVGb3Jt
YXQgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Ujhz
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4dWludCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c2ludCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OlIxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2
ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzh1bm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnOHNub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OlJnOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpSMzJ1aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMyc2ludCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpSZzE2c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnMTZmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YmE4dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVub3Jt
U1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm0sCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpSZ2I5ZTV1ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpS
Z2IxMGEydW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzExYjEw
dWZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMnVpbnQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzMyc2ludCwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMzJmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OlJnYmExNnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpSZ2JhMTZzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
UmdiYTE2ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1
aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTMyc2ludCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6U3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpEZXB0aDE2dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0OjpEZXB0aDI0cGx1cywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkRlcHRoMjRwbHVzU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpEZXB0aDMyZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpC
YzFSZ2JhVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2Jh
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVu
b3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3JtU1JH
QiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0IsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSVW5vcm0sCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzRSU25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpCYzVSZ1Vub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6QmM1UmdTbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJj
NmhSZ2JVZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzZoUmdi
RmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm0s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjh1bm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYjhhMXVub3JtU1JHQiwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJSZ2JhOHVub3JtLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RXRjMlJnYmE4dW5vcm1TUkdCLAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RWFjUjExdW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpFYWNSMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkVhY1JnMTF1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkVhY1JnMTFzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFz
dGM0eDRVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM0eDRV
bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5v
cm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg0VW5vcm1TUkdC
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzV4NVVub3JtU1JHQiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDVVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpBc3RjNng2VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QXN0Yzh4NVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkFzdGM4eDZVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkFzdGM4eDZVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpB
c3RjOHg4VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg4
VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVV
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1T
UkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybSwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg2VW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDhVbm9ybSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm1TUkdCLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDEwVW5vcm0sCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4MTBVbm9ybVNSR0IsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTJ4MTBVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEyVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgyNHVub3JtU3RlbmNpbDgsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDMyZmxvYXRTdGVuY2lsOAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDM4
ZGQzNGRkOTMyZDI0YWYxZGJlOWM0MmRmMmU5ZDcwYmQ1ZDhiZDcuLjM0YTAxY2FiMjBhNTI1NGUw
MGIzMzgyODhiY2EyNjA5NzQwM2ViZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAK
QEAgLTM4LDMgKzM5LDE4IEBAIGVudW0gY2xhc3MgVGV4dHVyZVNhbXBsZVR5cGUgOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlU2FtcGxlVHlwZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1w
bGVUeXBlOjpGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpV
bmZpbHRlcmFibGVGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBl
OjpEZXB0aCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OlVpbnQKKyAgICA+OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24u
aAppbmRleCBiMzVjMDQwMjNmMWRjNjhiMWFhZWVkODRlYjRiZTVjNWVmNTUzM2I5Li5kMzZlZTQ1
YzhhODY1MGU0YTZhMTNiZTcyNDllZTMzOGIzZDAzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGltZW5zaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewogCkBAIC0zOSwzICs0MCwxOSBAQCBlbnVtIGNsYXNzIFRleHR1cmVWaWV3
RGltZW5zaW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6XzFkLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3RGltZW5zaW9uOjpfMmRBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uOjpDdWJlLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdE
aW1lbnNpb246OkN1YmVBcnJheSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGlt
ZW5zaW9uOjpfM2QKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3Jt
YXQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCmluZGV4IDk0ZWFjNDEzOGExNmU5ZWU2ZGRlMDA4NmExOGM3NjZiY2NjNDk3OWMu
LjJhMDEzNTM0Y2NkMzExYWU4MTcwY2ViMjZiZGNkYTMyMGI1NjU5NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eEZvcm1hdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtNjMsMyArNjQsNDMgQEAgZW51bSBjbGFzcyBWZXJ0ZXhGb3JtYXQgOiB1aW50
OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50
OHgyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHg0LAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50OHgyLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4Rm9ybWF0OjpTaW50OHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9y
bWF0OjpVbm9ybTh4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm04
eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHgyLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTh4NCwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdDo6VWludDE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OlVpbnQxNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50
MTZ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDE2eDQsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4MiwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleEZvcm1hdDo6VW5vcm0xNng0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVy
dGV4Rm9ybWF0OjpTbm9ybTE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNub3JtMTZ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNngy
LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDE2eDQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzIsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZv
cm1hdDo6RmxvYXQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9h
dDMyeDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyeDIsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMngzLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4
Rm9ybWF0OjpVaW50MzJ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2lu
dDMyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzJ4MiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDMsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQzMng0CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmgKaW5kZXggNjRkMTJjOTgwODdlOGI1NDY4Yzdk
OTkzNDIwNDg3MTQ2MzQ5MzMxOS4uNDFiMzA2OWNmMGJmMzQ5YzY3MWMxMWNkZjhiZDFlYmFmM2Yz
OWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4U3RlcE1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBj
bGFzcyBWZXJ0ZXhTdGVwTW9kZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU6OlZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlZlcnRleFN0ZXBNb2RlOjpJbnN0YW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTFVuaXRUZXN0cy9XR1NMVW5pdFRlc3Rz
Lm1tIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KaW5kZXgg
NzNkN2M3ZGM3OWJlNGZjYzBmZDA3ZTg1ODNhZjcwZDA4YmYwYzgxOC4uZjM3NGJhZDYzMzk0Yzcz
Zjg5OWVhZjVkNmRiZmIwY2E2YjdkZmM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XR1NM
VW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0KKysrIGIvU291cmNlL1dlYkdQVS9XR1NMVW5pdFRl
c3RzL1dHU0xVbml0VGVzdHMubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8WENUZXN0
L1hDVGVzdC5oPgogI2ltcG9ydCA8dmVjdG9yPgorI2ltcG9ydCA8d3RmL0RhdGFMb2cuaD4KICNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogQGludGVyZmFjZSBXR1NMVW5pdFRlc3RzIDogWENUZXN0
Q2FzZQpAQCAtMzQsNiArMzUsNyBAQAogQGltcGxlbWVudGF0aW9uIFdHU0xVbml0VGVzdHMKIAog
LSAodm9pZCl0ZXN0RXhhbXBsZSB7CisgICAgZGF0YUxvZygiYXNkZlxuIik7CiAgICAgVmVjdG9y
PGludD4geCB7IDIsIDMsIH07CiAgICAgVmVjdG9yPGludD4geTsKICAgICB5LmFwcGVuZCgyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDdkNjM0NTM0ZWNlZDk5NzBmOWZlYjZhNmJmYjk0ZDAzODQz
YzAzZjQuLmMzMjk3NGE4NGIyYTY2OTQwNzM4ZjBkNGYzYzJiZjllNjEwYmMwMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJLSVRfRElSfSIKICAgICAiJHtXRUJLSVRfRElSfS9HUFVQcm9jZXNzIgog
ICAgICIke1dFQktJVF9ESVJ9L0dQVVByb2Nlc3MvZ3JhcGhpY3MiCisgICAgIiR7V0VCS0lUX0RJ
Un0vR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUiCiAgICAgIiR7V0VCS0lUX0RJUn0vR1BVUHJv
Y2Vzcy9tZWRpYSIKICAgICAiJHtXRUJLSVRfRElSfS9HUFVQcm9jZXNzL3dlYnJ0YyIKICAgICAi
JHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2VzcyIKQEAgLTEzNiw2ICsxMzcsMjkgQEAgc2V0KFdl
YktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0wKICAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQKIAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIKKyAg
ICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAKKyAgICBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQKKyAgICBHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyCisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21wdXRlUGFzc0VuY29kZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21wdXRlUGlwZWxpbmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVE
ZXZpY2UKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1
cmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUKKyAgICBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dAorICAgIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0CisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUXVldWUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJCdW5kbGUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyCisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXIKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQ
aXBlbGluZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIKKyAg
ICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUKKyAgICBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlCisgICAgR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcKKwogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIKICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5CiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJv
eHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCAzZGY5OGEzNTBkOGQ0NzRjNTI3ZDljMjQ5MTExYzRiZTUwZWJhZDQwLi43OTlhZDc1YjJhMWFi
MjEwZDA4MWQ1OWZkNWI0YjAyZDhiNmRhZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yNCw2ICsyNCwyOCBAQCAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91
cC5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNv
bW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5t
ZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlRGV2aWNlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQu
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVF
bmNvZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMu
aW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBs
ZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJv
Y2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMWYyNjY2ODQwMGFmOTIx
MmQwMGM3MWFlYTBiNTg1YTA3MDIzY2I5YS4uYTY1ZmMzNjE4NGNmZjhmNzc1MmQ2ODUyNzk4NjE1
NGI2YWY4MDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC0xNTQsNiArMTU0LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZXMKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBZGFwdGVyTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQWRhcHRlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUFkYXB0ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2Vz
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCkBAIC0xODUsNiArMTg4LDE1IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyTWVzCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNr
UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZXNS
ZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJpbmRHcm91cE1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJpbmRHcm91cE1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCdWZmZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCdWZmZXJNZXNzYWdlc1Jl
cGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RN
RmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKQEAgLTIwNiw5ICsyMTgsMzAgQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNUHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRCdWZm
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kQnVmZmVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29t
bWFuZEVuY29kZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNv
bXB1dGVQaXBlbGluZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbXB1dGVQaXBlbGluZU1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbXB1dGVQ
aXBlbGluZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZpY2VNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZpY2VNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEZXZp
Y2VNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFs
VGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFsVGV4dHVyZU1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUV4dGVybmFsVGV4dHVy
ZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVHUFVNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHUFVNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHUFVNZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTI4MiwxMiArMzE1LDMzIEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhU291
cmNlUHJveHlNZXNzYWdlc1JlcGxpCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lz
dHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVQaXBlbGluZUxheW91dE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVBpcGVsaW5lTGF5b3V0TWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1
ZXJ5U2V0TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUXVlcnlTZXRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVRdWVyeVNldE1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVR
dWV1ZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVF1ZXVlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUXVldWVNZXNzYWdlc1JlcGxpZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVtb3RlQ29t
bWFuZExpc3RlbmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVt
b3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21t
YW5kTGlzdGVuZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdl
c1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVy
QnVuZGxlTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQaXBl
bGluZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyUGlwZWxpbmVNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTMwMCwxNSArMzU0LDI3
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZXJNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVy
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJN
b2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0
dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlVGV4dHVyZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4dHVy
ZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVWaWV3TWVzc2FnZXNS
ZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggNWY1ZjQ3MzA5NjNkYjY5NTVlZTliNDA5MzEzZGNiMDQwZjNjOTY4OC4uZGRlNWM2M2Zl
M2Y0YjMxNTI5N2RiNGI2ODQ4OWMyOWRlNWJiYTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMjQ3LDYgKzI0NywyOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgXAogCUdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QWRhcHRlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwIFwK
KwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQgXAorCUdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlciBcCisJR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVEZXZpY2UgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4
dHVyZSBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVIFwKKwlHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dCBcCisJR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVF1ZXVlIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5k
ZXJCdW5kbGUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGlu
ZSBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlciBcCisJR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlIFwKKwlHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlVmlldyBcCiAJR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNz
UHJveHkgXAogCUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIgXAogCUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNDA5YTljNDYxNGE1NDYyNGFmZGZh
YWEwZTJmMTM5NWY0NzYzNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQWRhcHRl
ci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlICJX
ZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0
cy5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcihQQUw6Oldl
YkdQVTo6QWRhcHRlciYgYWRhcHRlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQor
ICAgIDogbV9iYWNraW5nKGFkYXB0ZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkK
K3sKK30KKworUmVtb3RlQWRhcHRlcjo6flJlbW90ZUFkYXB0ZXIoKQoreworfQorCit2b2lkIFJl
bW90ZUFkYXB0ZXI6OnJlcXVlc3REZXZpY2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9y
dGVkTGltaXRzJiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9y
KTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxi
YWNrKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBIQVZFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUFkYXB0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MGYzN2U3ZTQ2NzA5OGExNzZmZTRj
NDA3ODMxNDlhMGMxZDM3N2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmgKQEAgLTAsMCArMSw3NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEFkYXB0ZXI7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK3N0cnVjdCBEZXZpY2VE
ZXNjcmlwdG9yOworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBTdXBwb3J0ZWRGZWF0dXJlczsK
K3N0cnVjdCBTdXBwb3J0ZWRMaW1pdHM7Cit9CisKK2NsYXNzIFJlbW90ZUFkYXB0ZXIgZmluYWwg
OiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8UmVtb3RlQWRhcHRlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBhZGFwdGVy
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVBZGFwdGVyKGFkYXB0ZXIsIG9iamVjdEhlYXApKTsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVBZGFwdGVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVBZGFwdGVyKFBBTDo6V2ViR1BVOjpBZGFw
dGVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVBZGFwdGVyKGNvbnN0IFJl
bW90ZUFkYXB0ZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVBZGFwdGVyKFJlbW90ZUFkYXB0ZXIm
JikgPSBkZWxldGU7CisgICAgUmVtb3RlQWRhcHRlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUFk
YXB0ZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVBZGFwdGVyJiBvcGVyYXRvcj0oUmVtb3RlQWRh
cHRlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBD
OjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IFdlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIFdl
YkdQVUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJHUFU6OlN1cHBv
cnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiYpPiYmKTsKKworICAgIFJl
ZjxQQUw6OldlYkdQVTo6QWRhcHRlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVj
dEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmExMzNhYTZlMWNjNmI1MzlhMDQ5ZTc0NTY1OTNlZjAzOGE4MzRjOGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAq
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUFkYXB0ZXIgTm90
UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgUmVxdWVzdERldmljZShXZWJLaXQ6OldlYkdQ
VTo6RGV2aWNlRGVzY3JpcHRvciBkZXZpY2VEZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikgLT4gKFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyBz
dXBwb3J0ZWRGZWF0dXJlcywgV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyBzdXBwb3J0
ZWRMaW1pdHMpIFN5bmNocm9ub3VzCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ3MTBhNTQ1OTVlNmI0YjQyMGFiMTA5MjgzM2Y3MThjNDkxMjMwYjQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJpbmRHcm91cC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVCaW5kR3JvdXAuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUmVtb3RlQmluZEdyb3VwOjpSZW1vdGVCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkJp
bmRHcm91cCYgYmluZEdyb3VwLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
OiBtX2JhY2tpbmcoYmluZEdyb3VwKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7
Cit9CisKK1JlbW90ZUJpbmRHcm91cDo6flJlbW90ZUJpbmRHcm91cCgpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQmluZEdyb3VwOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURf
UEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZDEwZGY0
MTUyOGFkMTIyYWFhMDNiZTc2YTc4MDNhYmQ4YWI4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5oCkBA
IC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBC
aW5kR3JvdXA7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsK
K2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUJpbmRHcm91cCBmaW5hbCA6IHB1
YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVCaW5kR3JvdXA+IGNyZWF0ZShQQUw6OldlYkdQVTo6QmluZEdyb3VwJiBiaW5kR3Jv
dXAsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW90ZUJpbmRHcm91cChiaW5kR3JvdXAsIG9iamVjdEhlYXApKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVCaW5kR3JvdXAoKTsKKworcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUJpbmRHcm91cChQQUw6Oldl
YkdQVTo6QmluZEdyb3VwJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVCaW5k
R3JvdXAoY29uc3QgUmVtb3RlQmluZEdyb3VwJikgPSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdy
b3VwKFJlbW90ZUJpbmRHcm91cCYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAmIG9w
ZXJhdG9yPShjb25zdCBSZW1vdGVCaW5kR3JvdXAmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5k
R3JvdXAmIG9wZXJhdG9yPShSZW1vdGVCaW5kR3JvdXAmJikgPSBkZWxldGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwor
CisgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+IG1fYmFja2luZzsKKyAgICBSZWY8V2Vi
R1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5k
R3JvdXAubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q3Zjk0MWFkNjJjOTg1MDczZWFiZmQzM2M1
NWNjMWRkZmMzZTZhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBS
ZW1vdGVCaW5kR3JvdXAgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwo
U3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YzBmMGUxMWU3NzQ5ZTk5OWYxNDE2NzFiMjVjODBjM2Q1ODY4Y2I5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQmluZEdyb3VwTGF5b3V0
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RI
ZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlv
dXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUJpbmRHcm91cExheW91dDo6UmVt
b3RlQmluZEdyb3VwTGF5b3V0KFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQmIGJpbmRHcm91
cExheW91dCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5n
KGJpbmRHcm91cExheW91dCkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQor
CitSZW1vdGVCaW5kR3JvdXBMYXlvdXQ6On5SZW1vdGVCaW5kR3JvdXBMYXlvdXQoKQoreworfQor
Cit2b2lkIFJlbW90ZUJpbmRHcm91cExheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7
CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlv
dXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMGZkYWNhZWEyYTU0MzlkMWNiZTcxYzZhOGZiM2UxOWM4MTg1ODU1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQmluZEdyb3VwTGF5b3V0OworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOwor
fQorCitjbGFzcyBSZW1vdGVCaW5kR3JvdXBMYXlvdXQgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQmluZEdy
b3VwTGF5b3V0PiBjcmVhdGUoUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYgYmluZEdyb3Vw
TGF5b3V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0
LCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQmluZEdyb3VwTGF5
b3V0KCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBS
ZW1vdGVCaW5kR3JvdXBMYXlvdXQoUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCYsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0KGNvbnN0IFJlbW90
ZUJpbmRHcm91cExheW91dCYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cExheW91dChS
ZW1vdGVCaW5kR3JvdXBMYXlvdXQmJikgPSBkZWxldGU7CisgICAgUmVtb3RlQmluZEdyb3VwTGF5
b3V0JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQmluZEdyb3VwTGF5b3V0JikgPSBkZWxldGU7Cisg
ICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0JiBvcGVyYXRvcj0oUmVtb3RlQmluZEdyb3VwTGF5b3V0
JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0
cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2
b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3Vw
TGF5b3V0PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RI
ZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3ZWNkMjk0NjQ5NDhiOWM5ODI1NjFlNzNmYzI4YmZlNTI2MzcwNjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisv
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQmlu
ZEdyb3VwTGF5b3V0IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0
cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZj
MjZlNGI1ODg5ZTA4MzEzZDZhN2I5M2Y3ZWQxNjRkZjU2ZWE5OAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNw
cApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3Rl
QnVmZmVyOjpSZW1vdGVCdWZmZXIoUEFMOjpXZWJHUFU6OkJ1ZmZlciYgYnVmZmVyLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYnVmZmVyKQorICAgICwg
bV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUJ1ZmZlcjo6flJlbW90ZUJ1
ZmZlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjptYXBBc3luYyhQQUw6OldlYkdQVTo6
TWFwTW9kZUZsYWdzIG1hcE1vZGVGbGFncywgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6
ZTY0PiBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBVTlVTRURfUEFSQU0obWFwTW9kZUZsYWdzKTsKKyAgICBVTlVTRURfUEFSQU0ob2Zm
c2V0KTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZUJ1ZmZl
cjo6dW5tYXAoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZGF0
YSk7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjpkZXN0cm95KCkKK3sKK30KKwordm9pZCBSZW1v
dGVCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShs
YWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRhNDVhN2RkYWU3ZDQzMTg2NzU0
MGRlMDkyODkyMjEwZDM0MTUyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmgKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg+Cisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmg+CisjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKK2NsYXNzIEJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3Rl
QnVmZmVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUJ1ZmZlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpCdWZm
ZXImIGJ1ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQnVmZmVyKGJ1ZmZlciwgb2JqZWN0SGVhcCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUJ1ZmZlcigpOworCitwcml2YXRlOgorICAg
IGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQnVmZmVyKFBBTDo6V2ViR1BV
OjpCdWZmZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUJ1ZmZlcihjb25z
dCBSZW1vdGVCdWZmZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCdWZmZXIoUmVtb3RlQnVmZmVy
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUJ1ZmZlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUJ1
ZmZlciYpID0gZGVsZXRlOworICAgIFJlbW90ZUJ1ZmZlciYgb3BlcmF0b3I9KFJlbW90ZUJ1ZmZl
ciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAg
dm9pZCBtYXBBc3luYyhQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzLCBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6
ZTY0PiBzaXplRm9yTWFwLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4
X3Q+JiYpPiYmKTsKKyAgICB2b2lkIHVubWFwKFZlY3Rvcjx1aW50OF90PiYmKTsKKworICAgIHZv
aWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OkJ1ZmZlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhl
YXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42Y2VmMTAyMThlMjkyNDE5ZTVhYjczZWE5NGMwNzg5ODgyMGRmOGI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAorLyogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUJ1ZmZlciBOb3RSZWZDb3Vu
dGVkIFN0cmVhbSB7CisgICAgdm9pZCBNYXBBc3luYyhQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdz
IG1hcE1vZGVGbGFncywgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkgLT4gKFZlY3Rvcjx1aW50
OF90PiBkYXRhKSBTeW5jaHJvbm91cworICAgIHZvaWQgVW5tYXAoVmVjdG9yPHVpbnQ4X3Q+IGRh
dGEpCisgICAgdm9pZCBEZXN0cm95KCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NGE5ZDU5MTNmZDNlOGMxZmVjNjk2MWE1YWNmMjhhMDJkODIwYjM5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5k
QnVmZmVyLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRCdWZmZXIuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlbW90ZUNvbW1hbmRCdWZmZXI6OlJlbW90ZUNvbW1hbmRCdWZmZXIoUEFMOjpXZWJH
UFU6OkNvbW1hbmRCdWZmZXImIGNvbW1hbmRCdWZmZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2Jq
ZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhjb21tYW5kQnVmZmVyKQorICAgICwgbV9vYmplY3RI
ZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUNvbW1hbmRCdWZmZXI6On5SZW1vdGVDb21t
YW5kQnVmZmVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbChT
dHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFu
ZEJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21tYW5kQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE1NmZiYTZhOGMzNjNiNjYyMjU5ZTZiNmI1
MDNkZTViY2E1NjAwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBDb21tYW5kQnVmZmVyOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmpl
Y3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVDb21tYW5kQnVmZmVyIGZpbmFsIDogcHVibGljIElQ
Qzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90
ZUNvbW1hbmRCdWZmZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYgY29tbWFu
ZEJ1ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQ29tbWFuZEJ1ZmZlcihjb21tYW5kQnVmZmVyLCBv
YmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZEJ1ZmZlcigp
OworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3Rl
Q29tbWFuZEJ1ZmZlcihQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYsIFdlYkdQVTo6T2JqZWN0
SGVhcCYpOworCisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZlcihjb25zdCBSZW1vdGVDb21tYW5kQnVm
ZmVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZlcihSZW1vdGVDb21tYW5kQnVm
ZmVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRCdWZmZXImIG9wZXJhdG9yPShjb25z
dCBSZW1vdGVDb21tYW5kQnVmZmVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tbWFuZEJ1ZmZl
ciYgb3BlcmF0b3I9KFJlbW90ZUNvbW1hbmRCdWZmZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwor
CisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPiBtX2JhY2tpbmc7CisgICAgUmVm
PFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI4Y2UxYmU3NjliMDU2
ZGU3NjAzZGIwMDY3MDQ0MjE4NTQxN2RjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlQ29tbWFuZEJ1ZmZlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7
CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5k
RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUNvbW1hbmRFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWI0MzY0N2Q4NmQwOTdmMWZhNjAx
NTcyMWVjN2NkOTY1YTYxZTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5jcHAKQEAgLTAsMCAr
MSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlQ29tbWFuZEVuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNvbW1hbmRFbmNvZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVDb21t
YW5kRW5jb2Rlcjo6UmVtb3RlQ29tbWFuZEVuY29kZXIoUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNv
ZGVyJiBjb21tYW5kRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAg
IDogbV9iYWNraW5nKGNvbW1hbmRFbmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhl
YXApCit7Cit9CisKK1JlbW90ZUNvbW1hbmRFbmNvZGVyOjp+UmVtb3RlQ29tbWFuZEVuY29kZXIo
KQoreworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MoY29u
c3QgV2ViR1BVOjpSZW5kZXJQYXNzRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBV
TlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6
OmJlZ2luQ29tcHV0ZVBhc3MoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbXB1dGVQYXNz
RGVzY3JpcHRvcj4mIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIo
CisgICAgV2ViR1BVSWRlbnRpZmllciBzb3VyY2UsCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBz
b3VyY2VPZmZzZXQsCisgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAgICBQQUw6
OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LAorICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0o
c291cmNlT2Zmc2V0KTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNF
RF9QQVJBTShkZXN0aW5hdGlvbk9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQor
Cit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKAorICAgIGNv
bnN0IFdlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJ
bWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNE
JiBjb3B5U2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFS
QU0oZGVzdGluYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoCisgICAgY29uc3QgV2Vi
R1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNv
cHlCdWZmZXImIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNvcHlT
aXplKQoreworICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9QQVJBTShkZXN0
aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKK30KKwordm9pZCBSZW1vdGVD
b21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb1RleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJ
bWFnZUNvcHlUZXh0dXJlJiBzb3VyY2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0
dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRp
b24pOworICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFu
ZEVuY29kZXI6OmZpbGxCdWZmZXIoCisgICAgV2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwK
KyAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LAorICAgIFBBTDo6V2Vi
R1BVOjpTaXplNjQgc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbk9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUp
OworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpwdXNoRGVidWdHcm91cChTdHJpbmcm
JiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKK30KKwordm9p
ZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdHcm91cCgpCit7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tbWFuZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVs
KQoreworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29t
bWFuZEVuY29kZXI6OndyaXRlVGltZXN0YW1wKFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQsIFBB
TDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlT
ZXQpOworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKK30KKwordm9pZCBSZW1vdGVDb21t
YW5kRW5jb2Rlcjo6cmVzb2x2ZVF1ZXJ5U2V0KAorICAgIFdlYkdQVUlkZW50aWZpZXIgcXVlcnlT
ZXQsCisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFF1ZXJ5LAorICAgIFBBTDo6V2ViR1BV
OjpTaXplMzIgcXVlcnlDb3VudCwKKyAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLAor
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQpCit7CisgICAgVU5VU0VE
X1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RRdWVyeSk7CisgICAgVU5V
U0VEX1BBUkFNKHF1ZXJ5Q291bnQpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Cisg
ICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uT2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVDb21t
YW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3Im
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYjYwZTRiMTM4NmEyZTNlMGNkZDU5Yjc2YmYyZjhmNjY0ZWIzODA0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21tYW5kRW5jb2Rlci5oCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgorI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBDb21tYW5k
RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgewor
c3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yOworc3RydWN0IENvbXB1dGVQYXNzRGVzY3Jp
cHRvcjsKK3N0cnVjdCBJbWFnZUNvcHlCdWZmZXI7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZTsK
K2NsYXNzIE9iamVjdEhlYXA7CitzdHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3I7Cit9CisKK2Ns
YXNzIFJlbW90ZUNvbW1hbmRFbmNvZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUNvbW1hbmRFbmNvZGVy
PiBjcmVhdGUoUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyJiBjb21tYW5kRW5jb2RlciwgV2Vi
R1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVtb3RlQ29tbWFuZEVuY29kZXIoY29tbWFuZEVuY29kZXIsIG9iamVjdEhlYXAp
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kRW5jb2RlcigpOworCitwcml2
YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlQ29tbWFuZEVu
Y29kZXIoUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7
CisKKyAgICBSZW1vdGVDb21tYW5kRW5jb2Rlcihjb25zdCBSZW1vdGVDb21tYW5kRW5jb2RlciYp
ID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyKFJlbW90ZUNvbW1hbmRFbmNvZGVy
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3Qg
UmVtb3RlQ29tbWFuZEVuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21tYW5kRW5jb2Rl
ciYgb3BlcmF0b3I9KFJlbW90ZUNvbW1hbmRFbmNvZGVyJiYpID0gZGVsZXRlOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNl
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGJlZ2luUmVuZGVyUGFzcyhjb25z
dCBXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAg
dm9pZCBiZWdpbkNvbXB1dGVQYXNzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21wdXRl
UGFzc0Rlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNvcHlCdWZm
ZXJUb0J1ZmZlcigKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciBzb3VyY2UsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpTaXplNjQgc291cmNlT2Zmc2V0LAorICAgICAgICBXZWJHUFVJZGVudGlmaWVy
IGRlc3RpbmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zm
c2V0LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0KTsKKworICAgIHZvaWQgY29weUJ1ZmZl
clRvVGV4dHVyZSgKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIHNvdXJj
ZSwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwK
KyAgICAgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpOworCisgICAgdm9pZCBj
b3B5VGV4dHVyZVRvQnVmZmVyKAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1
cmUmIHNvdXJjZSwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIGRlc3Rp
bmF0aW9uLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAg
ICB2b2lkIGNvcHlUZXh0dXJlVG9UZXh0dXJlKAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdl
Q29weVRleHR1cmUmIHNvdXJjZSwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0
dXJlJiBkZXN0aW5hdGlvbiwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpFeHRlbnQzRCYgY29weVNp
emUpOworCisgICAgdm9pZCBmaWxsQnVmZmVyKAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyIGRl
c3RpbmF0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0
LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0KTsKKworICAgIHZvaWQgcHVzaERlYnVnR3Jv
dXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAg
dm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lk
IHdyaXRlVGltZXN0YW1wKFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVl
cnlJbmRleCk7CisKKyAgICB2b2lkIHJlc29sdmVRdWVyeVNldCgKKyAgICAgICAgV2ViR1BVSWRl
bnRpZmllciwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFF1ZXJ5LAorICAgICAg
ICBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5Q291bnQsCisgICAgICAgIFdlYkdQVUlkZW50aWZp
ZXIgZGVzdGluYXRpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25P
ZmZzZXQpOworCisgICAgdm9pZCBmaW5pc2goY29uc3QgV2ViR1BVOjpDb21tYW5kQnVmZmVyRGVz
Y3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcm
Jik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPiBtX2JhY2tpbmc7Cisg
ICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRF
bmNvZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzBiZjMz
MTE0OGQyZTk1MzFjNTk3Y2I5Y2RkZDYxNzNiN2QyOWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQ29tbWFuZEVuY29kZXIgTm90UmVmQ291bnRl
ZCBTdHJlYW0geworICAgIHZvaWQgQmVnaW5SZW5kZXJQYXNzKFdlYktpdDo6V2ViR1BVOjpSZW5k
ZXJQYXNzRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICB2b2lkIEJlZ2luQ29tcHV0ZVBhc3Moc3RkOjpvcHRpb25hbDxXZWJLaXQ6
OldlYkdQVTo6Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENvcHlCdWZmZXJUb0J1ZmZlcihXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgc291cmNlLCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNvdXJjZU9m
ZnNldCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6OldlYkdQVTo6
U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemUpCisgICAg
dm9pZCBDb3B5QnVmZmVyVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXIg
c291cmNlLCBXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgV2Vi
S2l0OjpXZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZvaWQgQ29weVRleHR1cmVUb0J1
ZmZlcihXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBzb3VyY2UsIFdlYktpdDo6V2Vi
R1BVOjpJbWFnZUNvcHlCdWZmZXIgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQz
RCBjb3B5U2l6ZSkKKyAgICB2b2lkIENvcHlUZXh0dXJlVG9UZXh0dXJlKFdlYktpdDo6V2ViR1BV
OjpJbWFnZUNvcHlUZXh0dXJlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1
cmUgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICB2
b2lkIEZpbGxCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6
OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IHNp
emUpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lk
IFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtl
ckxhYmVsKQorICAgIHZvaWQgV3JpdGVUaW1lc3RhbXAoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKKyAgICB2b2lkIFJl
c29sdmVRdWVyeVNldChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpX
ZWJHUFU6OlNpemUzMiBmaXJzdFF1ZXJ5LCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5Q291bnQs
IFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUEFMOjpXZWJHUFU6OlNpemU2
NCBkZXN0aW5hdGlvbk9mZnNldCkKKyAgICB2b2lkIEZpbmlzaChXZWJLaXQ6OldlYkdQVTo6Q29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQz
NTBhOWY2ZGYwMGY0NWMxYzIxNTlmYzYxYjM3YzdiZTIxZWY5MDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQ
YXNzRW5jb2Rlci5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyKFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXImIGNvbXB1dGVQ
YXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNr
aW5nKGNvbXB1dGVQYXNzRW5jb2RlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQor
eworfQorCitSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6On5SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIoKQoreworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUo
V2ViR1BVSWRlbnRpZmllciBjb21wdXRlUGlwZWxpbmUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNv
bXB1dGVQaXBlbGluZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNw
YXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNp
emUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB6KQoreworICAgIFVO
VVNFRF9QQVJBTSh4KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CisgICAgVU5VU0VEX1BBUkFNKHop
OworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZGlzcGF0Y2hJbmRpcmVjdChX
ZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGly
ZWN0T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5V
U0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciBxdWVy
eVNldCwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQoreworICAgIFVOVVNFRF9QQVJB
TShxdWVyeVNldCk7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5SW5kZXgpOworfQorCit2b2lkIFJl
bW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQorewor
fQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCit7Cit9CisKK3Zv
aWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6Oklu
ZGV4MzIgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIgYmluZEdyb3VwLAorICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBvZmZzZXRzKQor
eworICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGJpbmRHcm91cCk7
CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldHMpOworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcjo6cHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCkKK3sKKyAgICBVTlVT
RURfUEFSQU0oZ3JvdXBMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVy
Ojpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6
Omluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9Q
QVJBTShtYXJrZXJMYWJlbCk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpz
ZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3YWZiZDhl
OWM1NGVmNjI0NzFmZDA4NGQzMTI2ZjgxZjEyOGVjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5j
b2Rlci5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7Citj
bGFzcyBDb21wdXRlUGFzc0VuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1l
c3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUNvbXB1
dGVQYXNzRW5jb2RlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI+IGNyZWF0
ZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyJiBjb21wdXRlUGFzc0VuY29kZXIsIFdl
YkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcihjb21wdXRlUGFzc0VuY29kZXIsIG9i
amVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJl
bW90ZUNvbXB1dGVQYXNzRW5jb2RlcihQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyJiwg
V2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoY29u
c3QgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0
ZVBhc3NFbmNvZGVyKFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXImIG9wZXJh
dG9yPShSZW1vdGVDb21wdXRlUGFzc0VuY29kZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRp
ZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UGlwZWxpbmUoV2ViR1BVSWRlbnRp
Zmllcik7CisgICAgdm9pZCBkaXNwYXRjaChQQUw6OldlYkdQVTo6U2l6ZTMyIHgsIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4geSwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPik7CisgICAgdm9pZCBkaXNwYXRjaEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5k
aXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpOworCisgICAg
dm9pZCBiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6
V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCk7CisgICAgdm9pZCBlbmRQaXBlbGluZVN0YXRpc3Rp
Y3NRdWVyeSgpOworCisgICAgdm9pZCBlbmRQYXNzKCk7CisKKyAgICB2b2lkIHNldEJpbmRHcm91
cChQQUw6OldlYkdQVTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmKTsKKwor
ICAgIHZvaWQgcHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBw
b3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJr
ZXJMYWJlbCk7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6
T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YmQyYjU3MmNiYTU0
MTFhMjNjMjljOTdkMDdjYzZjMGMwZWMyZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIE5vdFJlZkNvdW50
ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldFBpcGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgIHZvaWQgRGlzcGF0Y2goUEFMOjpXZWJHUFU6OlNpemUzMiB4LCBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHksIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemUzMj4geikKKyAgICB2b2lkIERpc3BhdGNoSW5kaXJlY3QoV2ViS2l0OjpXZWJH
UFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0
T2Zmc2V0KQorICAgIHZvaWQgQmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4
KQorICAgIHZvaWQgRW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQorICAgIHZvaWQgRW5kUGFz
cygpCisgICAgdm9pZCBTZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgsIFdl
YktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQ
QUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNldD4+IGR5bmFtaWNPZmZzZXRzKQorICAgIHZv
aWQgUHVzaERlYnVnR3JvdXAoU3RyaW5nIGdyb3VwTGFiZWwpCisgICAgdm9pZCBQb3BEZWJ1Z0dy
b3VwKCkKKyAgICB2b2lkIEluc2VydERlYnVnTWFya2VyKFN0cmluZyBtYXJrZXJMYWJlbCkKKyAg
ICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBl
bGluZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbXB1dGVQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI5ZDkwOTQ4MTkyYzRiZjAwMzQxY2Y4
YmU2OGY0NmZkZTRjZmRhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZUNvbXB1dGVQaXBlbGluZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVDb21w
dXRlUGlwZWxpbmU6OlJlbW90ZUNvbXB1dGVQaXBlbGluZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lJiBjb21wdXRlUGlwZWxpbmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICA6IG1fYmFja2luZyhjb21wdXRlUGlwZWxpbmUpCisgICAgLCBtX29iamVjdEhlYXAob2Jq
ZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBp
cGVsaW5lKCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGlwZWxpbmU6OmdldEJpbmRHcm91
cExheW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOwor
fQorCit2b2lkIFJlbW90ZUNvbXB1dGVQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlw
ZWxpbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYjM0MDQzZDc0OGZiZjdlZjZiZWEyYjMyZDUwOWU2ZjBjZjJi
MDIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQ29tcHV0ZVBpcGVsaW5lOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFw
OworfQorCitjbGFzcyBSZW1vdGVDb21wdXRlUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgSVBDOjpT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29t
cHV0ZVBpcGVsaW5lPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYgY29tcHV0
ZVBpcGVsaW5lLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVDb21wdXRlUGlwZWxpbmUoY29tcHV0ZVBpcGVs
aW5lLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQ29tcHV0ZVBp
cGVsaW5lKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAg
ICBSZW1vdGVDb21wdXRlUGlwZWxpbmUoUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYsIFdl
YkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFJl
bW90ZUNvbXB1dGVQaXBlbGluZSYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQaXBlbGlu
ZShSZW1vdGVDb21wdXRlUGlwZWxpbmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tcHV0ZVBp
cGVsaW5lJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJikgPSBkZWxldGU7
CisgICAgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJiBvcGVyYXRvcj0oUmVtb3RlQ29tcHV0ZVBpcGVs
aW5lJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6
OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICB2b2lkIGdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmll
cik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQ
VTo6Q29tcHV0ZVBpcGVsaW5lPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVh
cD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVs
aW5lLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NTlhYTU5MjM0MjkzODFkMzc2MGY1MmZiNmUz
YzQ4N2JiYWM2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
ICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMg
LT4gUmVtb3RlQ29tcHV0ZVBpcGVsaW5lIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lk
IEdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVEZXZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MDEyYWE3ODY1ODdhNDEyNzRmMDhk
YmZhZTVhMmNkOWY2MDUyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAKQEAgLTAsMCArMSwxNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRGV2aWNl
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1JlbW90ZURldmljZTo6UmVtb3RlRGV2aWNlKFBBTDo6V2ViR1BVOjpEZXZpY2Um
IGRldmljZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5n
KGRldmljZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVE
ZXZpY2U6On5SZW1vdGVEZXZpY2UoKQoreworfQorCit2b2lkIFJlbW90ZURldmljZTo6ZGVzdHJv
eSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIoY29uc3QgV2ViR1BV
OjpCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUoY29uc3Qg
V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVTYW1wbGVy
KGNvbnN0IFdlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAg
VU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6aW1wb3J0
RXh0ZXJuYWxUZXh0dXJlKGNvbnN0IFdlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciYg
ZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9Q
QVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3Zv
aWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgV2ViR1BVOjpCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJB
TShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5
b3V0KGNvbnN0IFdlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBX
ZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0
b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZp
Y2U6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3ImIGRl
c2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFS
QU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lk
IFJlbW90ZURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVTo6U2hhZGVyTW9k
dWxlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29u
c3QgV2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOwor
ICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNy
ZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VE
X1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwor
dm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQ
VTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50
aWZpZXIpOworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlRGV2
aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9Q
QVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisgICAgVU5V
U0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbW1h
bmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpDb21tYW5kRW5jb2RlckRlc2Ny
aXB0b3I+JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
VU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVJlbmRlckJ1bmRsZUVuY29kZXIoY29uc3Qg
V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpj
cmVhdGVRdWVyeVNldChjb25zdCBXZWJHUFU6OlF1ZXJ5U2V0RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
RGV2aWNlOjpwdXNoRXJyb3JTY29wZShQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXIgZXJyb3JGaWx0
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGVycm9yRmlsdGVyKTsKK30KKwordm9pZCBSZW1vdGVE
ZXZpY2U6OnBvcEVycm9yU2NvcGUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViR1BVOjpFcnJvcj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFN
KGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OnNldExhYmVsKFN0cmluZyYmIGxh
YmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWVhMjBhNzNiYmJlNWQwNzYzODFmODcxZGYyNjJmMmQxODQ1YzgzYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
RGV2aWNlLmgKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIldlYkdQVUVycm9yLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaD4K
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CitjbGFzcyBEZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2Ug
V2ViR1BVIHsKK3N0cnVjdCBCaW5kR3JvdXBEZXNjcmlwdG9yOworc3RydWN0IEJpbmRHcm91cExh
eW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvcjsKK3N0cnVjdCBDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcjsKK3N0
cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVj
dCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgUXVlcnlTZXREZXNjcmlwdG9yOwor
c3RydWN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yOworc3RydWN0IFJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvcjsKK3N0cnVjdCBTYW1wbGVyRGVzY3JpcHRvcjsKK3N0cnVjdCBTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yOworc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yOworfQorCitjbGFzcyBS
ZW1vdGVEZXZpY2UgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlRGV2aWNlPiBjcmVhdGUoUEFMOjpXZWJHUFU6
OkRldmljZSYgZGV2aWNlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVEZXZpY2UoZGV2aWNlLCBvYmplY3RI
ZWFwKSk7CisgICAgfQorCisgICAgflJlbW90ZURldmljZSgpOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlRGV2aWNlKFBBTDo6V2ViR1BVOjpE
ZXZpY2UmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZURldmljZShjb25zdCBS
ZW1vdGVEZXZpY2UmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVEZXZpY2UoUmVtb3RlRGV2aWNlJiYp
ID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZURldmlj
ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZSYgb3BlcmF0b3I9KFJlbW90ZURldmljZSYm
KSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJl
YW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9p
ZCBkZXN0cm95KCk7CisKKyAgICB2b2lkIGNyZWF0ZUJ1ZmZlcihjb25zdCBXZWJHUFU6OkJ1ZmZl
ckRlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVRleHR1cmUo
Y29uc3QgV2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAg
IHZvaWQgY3JlYXRlU2FtcGxlcihjb25zdCBXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yJiwgV2Vi
R1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBpbXBvcnRFeHRlcm5hbFRleHR1cmUoY29uc3QgV2Vi
R1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAg
ICB2b2lkIGNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXZWJHUFU6OkJpbmRHcm91cExheW91
dERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVBpcGVsaW5l
TGF5b3V0KGNvbnN0IFdlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiwgV2ViR1BVSWRl
bnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVCaW5kR3JvdXAoY29uc3QgV2ViR1BVOjpCaW5kR3Jv
dXBEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNyZWF0ZVNoYWRl
ck1vZHVsZShjb25zdCBXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNy
ZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
JiwgV2ViR1BVSWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3lu
Yyhjb25zdCBXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlm
aWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
JiwgV2ViR1BVSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
CisgICAgdm9pZCBjcmVhdGVDb21tYW5kRW5jb2Rlcihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQ
VTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZv
aWQgY3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBXZWJHUFU6OlJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNyZWF0ZVF1
ZXJ5U2V0KGNvbnN0IFdlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmll
cik7CisKKyAgICB2b2lkIHB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcik7
CisgICAgdm9pZCBwb3BFcnJvclNjb3BlKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFdlYkdQVTo6RXJyb3I+JiYpPiYmKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3Ry
aW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+IG1fYmFja2luZzsKKyAgICBS
ZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVE
ZXZpY2UubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQwN2VjZjI3MjllZDUzODcxMmVmNzgxMjQ2
MTQwYjU1NWFlY2E2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDgg
QEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1v
dGVEZXZpY2UgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgRGVzdHJveSgpCisgICAg
dm9pZCBDcmVhdGVCdWZmZXIoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3IgZGVzY3Jp
cHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVh
dGVUZXh0dXJlKFdlYktpdDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBX
ZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZVNhbXBs
ZXIoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgSW1wb3J0RXh0ZXJuYWxUZXh0
dXJlKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3Is
IFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlQmlu
ZEdyb3VwTGF5b3V0KFdlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQg
Q3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViS2l0OjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICB2b2lkIENyZWF0ZUJpbmRHcm91cChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwRGVzY3JpcHRv
ciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2
b2lkIENyZWF0ZVNoYWRlck1vZHVsZShXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3Jp
cHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICB2b2lkIENyZWF0ZUNvbXB1dGVQaXBlbGluZShXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICB2b2lkIENyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYktpdDo6V2ViR1BVOjpSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhXZWJLaXQ6
OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3luY2hyb25vdXMKKyAgICB2b2lkIENy
ZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikg
LT4gKCkgU3luY2hyb25vdXMKKyAgICB2b2lkIENyZWF0ZUNvbW1hbmRFbmNvZGVyKHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4gZGVzY3JpcHRv
ciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVS
ZW5kZXJCdW5kbGVFbmNvZGVyKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICB2b2lkIENyZWF0ZVF1ZXJ5U2V0KFdlYktpdDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0
b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBQdXNoRXJyb3JTY29wZShQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXIgZXJyb3JGaWx0ZXIp
CisgICAgdm9pZCBQb3BFcnJvclNjb3BlKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJH
UFU6OkVycm9yPiBlcnJvcikgU3luY2hyb25vdXMKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBs
YWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjhiYzRkOTdiNWYwYjg3ZmU5MTZiZDcwNTNjZDQzZDg0NTdhNjk3YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUV4dGVybmFsVGV4dHVyZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVFeHRlcm5hbFRleHR1cmU6OlJlbW90ZUV4dGVy
bmFsVGV4dHVyZShQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlJiBleHRlcm5hbFRleHR1cmUs
IFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhleHRlcm5h
bFRleHR1cmUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlOjp+UmVtb3RlRXh0ZXJuYWxUZXh0dXJlKCkKK3sKK30KKwordm9pZCBS
ZW1vdGVFeHRlcm5hbFRleHR1cmU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVO
VVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGZjZGUzZDc4ZGQyM2Q1ZGQ4MDNlZTUzY2I2OTQ0YzhmOGE4NWMzZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFBBTDo6V2ViR1BVIHsKK2NsYXNzIEV4dGVybmFsVGV4dHVyZTsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xh
c3MgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUV4dGVybmFsVGV4dHVy
ZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmIGV4dGVybmFsVGV4dHVyZSwg
V2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKGV4dGVybmFsVGV4dHVyZSwgb2JqZWN0
SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUV4dGVybmFsVGV4dHVyZSgpOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlRXh0
ZXJuYWxUZXh0dXJlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZShjb25zdCBSZW1vdGVFeHRlcm5h
bFRleHR1cmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVFeHRlcm5hbFRleHR1cmUoUmVtb3RlRXh0
ZXJuYWxUZXh0dXJlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFsVGV4dHVyZSYgb3Bl
cmF0b3I9KGNvbnN0IFJlbW90ZUV4dGVybmFsVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90
ZUV4dGVybmFsVGV4dHVyZSYgb3BlcmF0b3I9KFJlbW90ZUV4dGVybmFsVGV4dHVyZSYmKSA9IGRl
bGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRM
YWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZT4g
bV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZGVkMjc4ZmYyOTI0YzI0MzA0YjBlMjNhMmYwM2FkOWViODgwNDkyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAq
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUV4dGVybmFsVGV4
dHVyZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFi
ZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkNDBmNTA1YmNiNDA2MzU2
MzRjOTY1ZmRmYWJmYWMxYjA3MjQ4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVHUFUu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworUmVtb3RlR1BVOjpSZW1vdGVHUFUoUEFMOjpXZWJHUFU6OkdQVSYgZ3B1
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoZ3B1KQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUdQVTo6flJlbW90
ZUdQVSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJH
UFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyYgb3B0aW9ucywgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyYmLCBXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3Vw
cG9ydGVkTGltaXRzJiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShvcHRpb25z
KTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0
OTJkMjljMjU2ZGI2OTI2OGViOGNmY2VjYjE5NjY2NTJiYTM2ZjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5oCkBA
IC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJl
cy5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0cy5oIgorI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFBB
TDo6V2ViR1BVIHsKK2NsYXNzIEdQVTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVz
cGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBSZXF1ZXN0QWRhcHRlck9w
dGlvbnM7Cit9CisKK2NsYXNzIFJlbW90ZUdQVSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1l
c3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVHUFU+IGNyZWF0
ZShQQUw6OldlYkdQVTo6R1BVJiBncHUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUdQVShncHUsIG9iamVj
dEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVHUFUoKTsKKworcHJpdmF0ZToK
KyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUdQVShQQUw6OldlYkdQ
VTo6R1BVJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVHUFUoY29uc3QgUmVt
b3RlR1BVJikgPSBkZWxldGU7CisgICAgUmVtb3RlR1BVKFJlbW90ZUdQVSYmKSA9IGRlbGV0ZTsK
KyAgICBSZW1vdGVHUFUmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVHUFUmKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVHUFUmIG9wZXJhdG9yPShSZW1vdGVHUFUmJikgPSBkZWxldGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgcmVxdWVzdEFkYXB0ZXIoY29uc3Qg
V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnMmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nJiYsIFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0
ZWRMaW1pdHMmJik+JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpHUFU+IG1fYmFja2luZzsK
KyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVHUFUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY1OGU3ZjVjN2NlNDE2N2NjZDM0ZDU5MWQ1
YjJmMTJlZTYxN2E3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAK
Ky8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVH
UFUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgUmVxdWVzdEFkYXB0ZXIoV2ViS2l0
OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyBvcHRpb25zKSAtPiAoU3RyaW5nIG5hbWUs
IFdlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyBzdXBwb3J0ZWRGZWF0dXJlcywgV2Vi
S2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyBzdXBwb3J0ZWRMaW1pdHMpIFN5bmNocm9ub3Vz
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMTBmYWRmZTY2YzQ4NTA3NWU5MTZkNTg2Mjg2MDVjZmQ1NDQzYzVmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBl
bGluZUxheW91dC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVQaXBlbGluZUxheW91dC5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1JlbW90ZVBpcGVsaW5lTGF5b3V0OjpSZW1vdGVQaXBlbGluZUxheW91dChQ
QUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0LCBXZWJHUFU6Ok9iamVj
dEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocGlwZWxpbmVMYXlvdXQpCisgICAg
LCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlUGlwZWxpbmVMYXlvdXQ6
On5SZW1vdGVQaXBlbGluZUxheW91dCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUGlwZWxpbmVMYXlv
dXQ6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVQaXBlbGluZUxheW91dC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjZTlkYTUwZTkw
NDQyZDEyMzI0MjU4NjhmOTQ5MmRjMDViZWZmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmgK
QEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNz
IFBpcGVsaW5lTGF5b3V0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdl
YkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVQaXBlbGluZUxheW91
dCBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxSZW1vdGVQaXBlbGluZUxheW91dD4gY3JlYXRlKFBBTDo6V2ViR1BVOjpQ
aXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0
SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVBpcGVsaW5l
TGF5b3V0KHBpcGVsaW5lTGF5b3V0LCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVh
bCB+UmVtb3RlUGlwZWxpbmVMYXlvdXQoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3Mg
T2JqZWN0SGVhcDsKKworICAgIFJlbW90ZVBpcGVsaW5lTGF5b3V0KFBBTDo6V2ViR1BVOjpQaXBl
bGluZUxheW91dCYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUGlwZWxpbmVM
YXlvdXQoY29uc3QgUmVtb3RlUGlwZWxpbmVMYXlvdXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVQ
aXBlbGluZUxheW91dChSZW1vdGVQaXBlbGluZUxheW91dCYmKSA9IGRlbGV0ZTsKKyAgICBSZW1v
dGVQaXBlbGluZUxheW91dCYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVBpcGVsaW5lTGF5b3V0Jikg
PSBkZWxldGU7CisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQmIG9wZXJhdG9yPShSZW1vdGVQaXBl
bGluZUxheW91dCYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3Nh
Z2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6
OlBpcGVsaW5lTGF5b3V0PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4g
bV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDgzNGY4ZTFmYjlkMTU3MjMzMmNlMmU2MmJhYjZhMzgx
ODJmYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMw
IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisg
KiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVt
b3RlUGlwZWxpbmVMYXlvdXQgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFi
ZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTBjM2I5NzhlOTI5YjM1YzliOTA1YjkyYjk0NTRiMzdlMDJiM2U5NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVlcnlTZXQuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUXVlcnlTZXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZW1vdGVRdWVyeVNldDo6UmVtb3RlUXVlcnlTZXQoUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiBxdWVy
eVNldCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHF1
ZXJ5U2V0KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVF1
ZXJ5U2V0Ojp+UmVtb3RlUXVlcnlTZXQoKQoreworfQorCit2b2lkIFJlbW90ZVF1ZXJ5U2V0Ojpk
ZXN0cm95KCkKK3sKK30KKwordm9pZCBSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwoU3RyaW5nJiYg
bGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTY1MDJlYjgxNzU0YjU3Y2JhYTA3OTQyOWMyOGU0ZGU0NWU3NjkwOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUXVlcnlTZXQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFM
OjpXZWJHUFUgeworY2xhc3MgUXVlcnlTZXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVF1
ZXJ5U2V0IGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVF1ZXJ5U2V0PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlF1
ZXJ5U2V0JiBxdWVyeVNldCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUXVlcnlTZXQocXVlcnlTZXQsIG9i
amVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVRdWVyeVNldCgpOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUXVlcnlT
ZXQoUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBS
ZW1vdGVRdWVyeVNldChjb25zdCBSZW1vdGVRdWVyeVNldCYpID0gZGVsZXRlOworICAgIFJlbW90
ZVF1ZXJ5U2V0KFJlbW90ZVF1ZXJ5U2V0JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXJ5U2V0
JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUXVlcnlTZXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVR
dWVyeVNldCYgb3BlcmF0b3I9KFJlbW90ZVF1ZXJ5U2V0JiYpID0gZGVsZXRlOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNl
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGRlc3Ryb3koKTsKKworICAgIHZv
aWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4g
bV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdhODI2
MDM0MGVhYmU5ZjIwMzYyNjgwMTNhMDIwNjllMGZiNDdlMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVF1ZXJ5U2V0IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsK
KyAgICB2b2lkIERlc3Ryb3koKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUXVldWUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGExMTY1MTgzNTUxM2UwOWNhNjc2
ODY0NGI3ODA2Yzg4NjNlMTQ0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuY3BwCkBAIC0wLDAgKzEsOTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUXVldWUu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVRdWV1ZTo6UmVtb3RlUXVldWUoUEFMOjpXZWJHUFU6
OlF1ZXVlJiBxdWV1ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9i
YWNraW5nKHF1ZXVlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1Jl
bW90ZVF1ZXVlOjp+UmVtb3RlUXVldWUoKQoreworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjpzdWJt
aXQoVmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+JiYgY29tbWFuZEJ1ZmZlcnMpCit7CisgICAgVU5V
U0VEX1BBUkFNKGNvbW1hbmRCdWZmZXJzKTsKK30KKwordm9pZCBSZW1vdGVRdWV1ZTo6b25TdWJt
aXR0ZWRXb3JrRG9uZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjp3
cml0ZUJ1ZmZlcigKKyAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwKKyAgICBQQUw6OldlYkdQ
VTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwKKyAgICBWZWN0b3I8dWludDhfdD4mJiBkYXRhKQorewor
ICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShidWZmZXJPZmZzZXQp
OworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKK30KKwordm9pZCBSZW1vdGVRdWV1ZTo6d3JpdGVU
ZXh0dXJlKAorICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24s
CisgICAgVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwKKyAgICBjb25zdCBXZWJHUFU6OkltYWdlRGF0
YUxheW91dCYgZGF0YUxheW91dCwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBzaXplKQor
eworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRhdGEp
OworICAgIFVOVVNFRF9QQVJBTShkYXRhTGF5b3V0KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7
Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OmNvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKAorICAg
IGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSYgc291cmNlLAorICAgIGNvbnN0
IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCYgZGVzdGluYXRpb24sCisgICAgY29uc3Qg
V2ViR1BVOjpFeHRlbnQzRCYgY29weVNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7
CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oY29weVNp
emUpOworfQorCit2b2lkIFJlbW90ZVF1ZXVlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sK
KyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjMw
MWRhZDE1ODMzZDYxNzczMjNkNGNkYzYyNWEzZTJiZDJhY2VhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oCkBA
IC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNs
dWRlICJXZWJHUFVFeHRlbnQzRC5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNp
bmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBRdWV1ZTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworc3RydWN0IElt
YWdlQ29weUV4dGVybmFsSW1hZ2U7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZTsKK3N0cnVjdCBJ
bWFnZUNvcHlUZXh0dXJlVGFnZ2VkOworc3RydWN0IEltYWdlRGF0YUxheW91dDsKK2NsYXNzIE9i
amVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVF1ZXVlIGZpbmFsIDogcHVibGljIElQQzo6U3Ry
ZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVF1ZXVl
PiBjcmVhdGUoUEFMOjpXZWJHUFU6OlF1ZXVlJiBxdWV1ZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBv
YmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUXVl
dWUocXVldWUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVRdWV1
ZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVt
b3RlUXVldWUoUEFMOjpXZWJHUFU6OlF1ZXVlJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAg
ICBSZW1vdGVRdWV1ZShjb25zdCBSZW1vdGVRdWV1ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1
ZXVlKFJlbW90ZVF1ZXVlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1ZXVlJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlUXVldWUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVRdWV1ZSYgb3BlcmF0b3I9
KFJlbW90ZVF1ZXVlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVz
c2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICB2b2lkIHN1Ym1pdChWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJik7CisKKyAg
ICB2b2lkIG9uU3VibWl0dGVkV29ya0RvbmUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworCisgICAgdm9pZCB3cml0ZUJ1ZmZlcigKKyAgICAgICAgV2ViR1BVSWRlbnRpZmllciwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBidWZmZXJPZmZzZXQsCisgICAgICAgIFZlY3Rv
cjx1aW50OF90PiYmKTsKKworICAgIHZvaWQgd3JpdGVUZXh0dXJlKAorICAgICAgICBjb25zdCBX
ZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgICAgICBWZWN0b3I8dWlu
dDhfdD4mJiwKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFnZURhdGFMYXlvdXQmLAorICAgICAg
ICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBzaXplKTsKKworICAgIHZvaWQgY29weUV4dGVybmFs
SW1hZ2VUb1RleHR1cmUoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZSYgc291cmNlLAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdn
ZWQmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6
ZSk7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQ
VTo6UXVldWU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
NzYwYmIzMjZkNTI4OWVlNGI0YWNmMjBiY2M3OGJhNDE3MzRmNWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLm1l
c3NhZ2VzLmluCkBAIC0wLDAgKzEsMzUgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVRdWV1ZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7Cisg
ICAgdm9pZCBTdWJtaXQoVmVjdG9yPFdlYktpdDo6V2ViR1BVSWRlbnRpZmllcj4gY29tbWFuZEJ1
ZmZlcnMpCisgICAgdm9pZCBPblN1Ym1pdHRlZFdvcmtEb25lKCkgLT4gKCkgU3luY2hyb25vdXMK
KyAgICB2b2lkIFdyaXRlQnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
LCBQQUw6OldlYkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEp
CisgICAgdm9pZCBXcml0ZVRleHR1cmUoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUg
ZGVzdGluYXRpb24sIFZlY3Rvcjx1aW50OF90PiBkYXRhLCBXZWJLaXQ6OldlYkdQVTo6SW1hZ2VE
YXRhTGF5b3V0IGltYWdlRGF0YUxheW91dCwgV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNEIHNpemUp
CisgICAgdm9pZCBDb3B5RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZShXZWJLaXQ6OldlYkdQVTo6SW1h
Z2VDb3B5RXh0ZXJuYWxJbWFnZSBzb3VyY2UsIFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0
dXJlVGFnZ2VkIGRlc3RpbmF0aW9uLCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0QgY29weVNpemUp
CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJC
dW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVSZW5kZXJCdW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NDA1NzllMmQ5MGU2YWIwMTlmMzVkMGI5
NjcxNGU5MTM2ODM4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHAKQEAgLTAsMCArMSw1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5k
ZXJCdW5kbGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQ
VU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRl
ckJ1bmRsZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUmVuZGVyQnVuZGxlOjpS
ZW1vdGVSZW5kZXJCdW5kbGUoUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSYgcmVuZGVyQnVuZGxl
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcocmVuZGVy
QnVuZGxlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJl
bmRlckJ1bmRsZTo6flJlbW90ZVJlbmRlckJ1bmRsZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVu
ZGVyQnVuZGxlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
bGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlMmFiMDRm
Y2IxNDU2OWZlYTNkZTViOTRkNzk1YTRjZDRiZjcyODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5o
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFz
cyBSZW5kZXJCdW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2Vi
R1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVJlbmRlckJ1bmRsZSBm
aW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxSZW1vdGVSZW5kZXJCdW5kbGU+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVy
QnVuZGxlJiByZW5kZXJCdW5kbGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVJlbmRlckJ1bmRsZShyZW5k
ZXJCdW5kbGUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVSZW5k
ZXJCdW5kbGUoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKwor
ICAgIFJlbW90ZVJlbmRlckJ1bmRsZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlJiwgV2ViR1BV
OjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUoY29uc3QgUmVtb3RlUmVu
ZGVyQnVuZGxlJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyQnVuZGxlKFJlbW90ZVJlbmRl
ckJ1bmRsZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGUmIG9wZXJhdG9yPShj
b25zdCBSZW1vdGVSZW5kZXJCdW5kbGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5k
bGUmIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJCdW5kbGUmJikgPSBkZWxldGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwor
CisgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGU+IG1fYmFja2luZzsKKyAgICBSZWY8
V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDMxMjI2Y2Y3ZjgxMGZlZDBj
Nzk0ZjAwMmI3ZmVjMjc3NDM4NTAwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
ICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCitt
ZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJCdW5kbGUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAg
IHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxl
RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNjUyN2YyZmY5OTk0ODM1
NTRlNTlkZjhkNDVmZGJmZWNkY2I5YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3Bw
CkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OlJlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXIoUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXImIHJlbmRlckJ1bmRsZUVuY29k
ZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5k
ZXJCdW5kbGVFbmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisK
K1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6On5SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKCkK
K3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJH
UFVJZGVudGlmaWVyIHJlbmRlclBpcGVsaW5lKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJQ
aXBlbGluZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0SW5kZXhC
dWZmZXIoV2ViR1BVSWRlbnRpZmllciBidWZmZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCBp
bmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oYnVmZmVyKTsKKyAg
ICBVTlVTRURfUEFSQU0oaW5kZXhGb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOwor
ICAgIFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNv
ZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViR1BVSWRl
bnRpZmllciBidWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKHNsb3QpOwor
ICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAg
IFVOVVNFRF9QQVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVy
OjpkcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXpl
MzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHZl
cnRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VE
X1BBUkFNKGZpcnN0VmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJhd0luZGV4ZWQoUEFMOjpXZWJH
UFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQs
CisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LAorICAgIFBBTDo6V2ViR1BVOjpT
aWduZWRPZmZzZXQzMiBiYXNlVmVydGV4LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJ
bnN0YW5jZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kZXhDb3VudCk7CisgICAgVU5VU0VEX1BB
UkFNKGluc3RhbmNlQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdEluZGV4KTsKKyAgICBV
TlVTRURfUEFSQU0oYmFzZVZlcnRleCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5zdGFuY2Up
OworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmRyYXdJbmRpcmVjdChXZWJH
UFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0
T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5VU0VE
X1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNv
ZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIs
IFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZzZXQpOworfQor
Cit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cChQQUw6OldlYkdQ
VTo6SW5kZXgzMiBpbmRleCwgV2ViR1BVSWRlbnRpZmllciBiaW5kR3JvdXAsCisgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIGR5bmFt
aWNPZmZzZXRzKQoreworICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CisgICAgVU5VU0VEX1BBUkFN
KGJpbmRHcm91cCk7CisgICAgVU5VU0VEX1BBUkFNKGR5bmFtaWNPZmZzZXRzKTsKK30KKwordm9p
ZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91
cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKK30KKwordm9pZCBSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJM
YWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obWFya2VyTGFiZWwpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXI6OmZpbmlzaChjb25zdCBXZWJHUFU6OlJlbmRlckJ1bmRsZURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIp
OworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldExhYmVsKFN0cmluZyYm
IGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVF
bmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmY5ODUyMjEwNDc3NDc1MmEwZDUx
ZDUzN2U2ZDU2MjdjN2I5OWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKQEAgLTAs
MCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUluZGV4Rm9ybWF0Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRl
Z3JhbFR5cGVzLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVyQnVuZGxl
RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgewor
Y2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9yOworfQorCitj
bGFzcyBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFt
TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRlckJ1
bmRsZUVuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciYgcmVu
ZGVyQnVuZGxlRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcihy
ZW5kZXJCdW5kbGVFbmNvZGVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgflJlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0
SGVhcDsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoUEFMOjpXZWJHUFU6OlJlbmRl
ckJ1bmRsZUVuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXIoY29uc3QgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciYpID0gZGVsZXRl
OworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIoUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rl
ciYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJiBvcGVyYXRvcj0o
Y29uc3QgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXImIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJiYp
ID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVh
bVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lk
IHNldFBpcGVsaW5lKFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRJbmRleEJ1ZmZl
cihXZWJHUFVJZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BV
OjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+KTsKKyAg
ICB2b2lkIHNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJ
ZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6U2l6ZTY0Pik7CisKKyAgICB2b2lkIGRyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2
ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
SW5zdGFuY2UpOworICAgIHZvaWQgZHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUzMiBpbmRl
eENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9m
ZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0
YW5jZSk7CisKKyAgICB2b2lkIGRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0
QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsKKyAgICB2b2lkIGRy
YXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCk7CisKKyAgICB2b2lkIHNldEJpbmRHcm91cChQ
QUw6OldlYkdQVTo6SW5kZXgzMiwgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIGR5bmFtaWNP
ZmZzZXRzKTsKKworICAgIHZvaWQgcHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7
CisgICAgdm9pZCBwb3BEZWJ1Z0dyb3VwKCk7CisgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtlcihT
dHJpbmcmJiBtYXJrZXJMYWJlbCk7CisKKyAgICB2b2lkIGZpbmlzaChjb25zdCBXZWJHUFU6OlJl
bmRlckJ1bmRsZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc2V0
TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNv
ZGVyPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNmN2NmOTAzNzBjYzY3MjkxNGYxZjIyZTEzNDA4N2ZhOWRl
MTJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsx
LDQyIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICog
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4g
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9p
ZCBTZXRQaXBlbGluZShXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2
b2lkIFNldEluZGV4QnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQ
QUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQg
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCisgICAgdm9p
ZCBTZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViS2l0OjpXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUpCisgICAgdm9pZCBEcmF3KFBBTDo6
V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VD
b3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUz
MiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUz
MiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsIFBBTDo6V2Vi
R1BVOjpTaXplMzIgZmlyc3RJbmRleCwgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VW
ZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkKKyAgICB2b2lkIERyYXdJ
bmRpcmVjdChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2Vi
R1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBEcmF3SW5kZXhlZEluZGlyZWN0
KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNp
emU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIFNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6
SW5kZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4gZHluYW1p
Y09mZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAg
ICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5n
IG1hcmtlckxhYmVsKQorICAgIHZvaWQgRmluaXNoKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJCdW5k
bGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFjOTcyOWNlMWFk
MDk1ODYzZjY1MDQzMzBmOWQ1MjE1ZTY0NTkyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIu
Y3BwCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
KFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciYgcmVuZGVyUGFzc0VuY29kZXIsIFdlYkdQ
VTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJQYXNzRW5j
b2RlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6flJlbW90ZVJlbmRlclBhc3NFbmNvZGVyKCkKK3sKK30KKwordm9pZCBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoV2ViR1BVSWRlbnRpZmllciByZW5k
ZXJQaXBlbGluZSkKK3sKKyAgICBVTlVTRURfUEFSQU0ocmVuZGVyUGlwZWxpbmUpOworfQorCit2
b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlm
aWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0IGluZGV4Rm9ybWF0LCBQQUw6Oldl
YkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBz
aXplKQoreworICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShpbmRl
eEZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNp
emUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIo
UEFMOjpXZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViR1BVSWRlbnRpZmllciBidWZmZXIsIFBBTDo6
V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+
IHNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKHNsb3QpOworICAgIFVOVVNFRF9QQVJBTShidWZm
ZXIpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyhQQUw6OldlYkdQVTo6U2l6
ZTMyIHZlcnRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAg
UEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJz
dEluc3RhbmNlKQoreworICAgIFVOVVNFRF9QQVJBTSh2ZXJ0ZXhDb3VudCk7CisgICAgVU5VU0VE
X1BBUkFNKGluc3RhbmNlQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdFZlcnRleCk7Cisg
ICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5zdGFuY2UpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBh
c3NFbmNvZGVyOjpkcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBB
TDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMy
IGZpcnN0SW5kZXgsCisgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgs
CisgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQoreworICAgIFVOVVNFRF9Q
QVJBTShpbmRleENvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VDb3VudCk7CisgICAg
VU5VU0VEX1BBUkFNKGZpcnN0SW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShiYXNlVmVydGV4KTsK
KyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXI6OmRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVy
LCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJB
TShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdChXZWJH
UFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0
T2Zmc2V0KQoreworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7CisgICAgVU5VU0VE
X1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJHUFVJZGVudGlm
aWVyIGJpbmRHcm91cCwKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6OldlYkdQVTo6QnVm
ZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oYmluZEdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0o
ZHluYW1pY09mZnNldHMpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpwdXNo
RGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShncm91
cExhYmVsKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91
cCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6Omluc2VydERlYnVnTWFy
a2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJl
bCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFZpZXdwb3J0KGZsb2F0
IHgsIGZsb2F0IHksCisgICAgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwKKyAgICBmbG9hdCBt
aW5EZXB0aCwgZmxvYXQgbWF4RGVwdGgpCit7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAgIFVO
VVNFRF9QQVJBTSh5KTsKKyAgICBVTlVTRURfUEFSQU0od2lkdGgpOworICAgIFVOVVNFRF9QQVJB
TShoZWlnaHQpOworICAgIFVOVVNFRF9QQVJBTShtaW5EZXB0aCk7CisgICAgVU5VU0VEX1BBUkFN
KG1heERlcHRoKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0U2Npc3Nv
clJlY3QoUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHgsIFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZSB5LAorICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0
aCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGhlaWdodCkKK3sKKyAgICBVTlVTRURf
UEFSQU0oeCk7CisgICAgVU5VU0VEX1BBUkFNKHkpOworICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7
CisgICAgVU5VU0VEX1BBUkFNKGhlaWdodCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0Vu
Y29kZXI6OnNldEJsZW5kQ29uc3RhbnQoV2ViR1BVOjpDb2xvciBjb2xvcikKK3sKKyAgICBVTlVT
RURfUEFSQU0oY29sb3IpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRT
dGVuY2lsUmVmZXJlbmNlKFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWUgc3RlbmNpbFZhbHVlKQor
eworICAgIFVOVVNFRF9QQVJBTShzdGVuY2lsVmFsdWUpOworfQorCit2b2lkIFJlbW90ZVJlbmRl
clBhc3NFbmNvZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KFBBTDo6V2ViR1BVOjpTaXplMzIgcXVl
cnlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlJbmRleCk7Cit9CisKK3ZvaWQgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZE9jY2x1c2lvblF1ZXJ5KCkKK3sKK30KKwordm9pZCBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJH
UFVJZGVudGlmaWVyIHF1ZXJ5U2V0LCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXgpCit7
CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlJbmRl
eCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlz
dGljc1F1ZXJ5KCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZXhlY3V0
ZUJ1bmRsZXMoVmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+JiYgcmVuZGVyQnVuZGxlcykKK3sKKyAg
ICBVTlVTRURfUEFSQU0ocmVuZGVyQnVuZGxlcyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFz
c0VuY29kZXI6OmVuZFBhc3MoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTNmNjg5
ZTMyOWZkNjU2MTg5NjU0OGFkMWExNDk4YzIxMTA5OTFhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5j
b2Rlci5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJXZWJHUFVDb2xvci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg+Cisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVyUGFzc0VuY29kZXI7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9
CisKK2NsYXNzIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3Ry
ZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRl
clBhc3NFbmNvZGVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiByZW5k
ZXJQYXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIocmVuZGVy
UGFzc0VuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB+UmVtb3RlUmVuZGVyUGFz
c0VuY29kZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKwor
ICAgIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyKFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rl
ciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIo
Y29uc3QgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2RlcihSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXImIG9wZXJhdG9y
PShSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVy
KTsKKworICAgIHZvaWQgc2V0SW5kZXhCdWZmZXIoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJH
UFU6OkluZGV4Rm9ybWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6U2l6ZTY0Pik7CisgICAgdm9pZCBzZXRWZXJ0ZXhCdWZmZXIoUEFMOjpX
ZWJHUFU6OkluZGV4MzIgc2xvdCwgV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemU2
NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4pOworCisgICAgdm9p
ZCBkcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXpl
MzIgaW5zdGFuY2VDb3VudCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZlcnRl
eCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKTsKKyAgICB2b2lkIGRyYXdJbmRl
eGVkKFBBTDo6V2ViR1BVOjpTaXplMzIgaW5kZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBp
bnN0YW5jZUNvdW50LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5kZXgsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpTaWduZWRPZmZzZXQzMiBiYXNlVmVydGV4LAorICAgICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworCisgICAgdm9pZCBkcmF3SW5kaXJl
Y3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBp
bmRpcmVjdE9mZnNldCk7CisgICAgdm9pZCBkcmF3SW5kZXhlZEluZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
OworCisgICAgdm9pZCBzZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIsIFdlYkdQVUlk
ZW50aWZpZXIsCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZm
ZXJEeW5hbWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cyk7CisKKyAgICB2b2lkIHB1c2hEZWJ1
Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpOworICAgIHZvaWQgcG9wRGVidWdHcm91cCgpOwor
ICAgIHZvaWQgaW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpOworCisgICAg
dm9pZCBzZXRWaWV3cG9ydChmbG9hdCB4LCBmbG9hdCB5LAorICAgICAgICBmbG9hdCB3aWR0aCwg
ZmxvYXQgaGVpZ2h0LAorICAgICAgICBmbG9hdCBtaW5EZXB0aCwgZmxvYXQgbWF4RGVwdGgpOwor
CisgICAgdm9pZCBzZXRTY2lzc29yUmVjdChQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUg
eCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHksCisgICAgICAgIFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aCwgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRl
IGhlaWdodCk7CisKKyAgICB2b2lkIHNldEJsZW5kQ29uc3RhbnQoV2ViR1BVOjpDb2xvcik7Cisg
ICAgdm9pZCBzZXRTdGVuY2lsUmVmZXJlbmNlKFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWUpOwor
CisgICAgdm9pZCBiZWdpbk9jY2x1c2lvblF1ZXJ5KFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJ
bmRleCk7CisgICAgdm9pZCBlbmRPY2NsdXNpb25RdWVyeSgpOworCisgICAgdm9pZCBiZWdpblBp
cGVsaW5lU3RhdGlzdGljc1F1ZXJ5KFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXpl
MzIgcXVlcnlJbmRleCk7CisgICAgdm9pZCBlbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpOwor
CisgICAgdm9pZCBleGVjdXRlQnVuZGxlcyhWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJik7Cisg
ICAgdm9pZCBlbmRQYXNzKCk7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAg
IFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8
V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YjdiYWFh
OGVhYzA5YjM3NWNmYmE3ODRhOWQzMjhiZGQ2YjZhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNv
ZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNTEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciBOb3RSZWZD
b3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRQaXBlbGluZShXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFNldEluZGV4QnVmZmVyKFdlYktpdDo6V2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhGb3Jt
YXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpTaXplNjQ+IHNpemUpCisgICAgdm9pZCBTZXRWZXJ0ZXhCdWZmZXIoUEFMOjpXZWJHUFU6Oklu
ZGV4MzIgc2xvdCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2Vi
R1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNp
emUpCisgICAgdm9pZCBEcmF3KFBBTDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6
V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdFZl
cnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0lu
ZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMy
IGluc3RhbmNlQ291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwgUEFMOjpXZWJH
UFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJ
bnN0YW5jZSkKKyAgICB2b2lkIERyYXdJbmRpcmVjdChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIg
aW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAg
dm9pZCBEcmF3SW5kZXhlZEluZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVj
dEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIFNl
dEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZm
ZXJEeW5hbWljT2Zmc2V0Pj4gZHluYW1pY09mZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91
cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQg
SW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1hcmtlckxhYmVsKQorICAgIHZvaWQgU2V0Vmlld3Bv
cnQoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgbWlu
RGVwdGgsIGZsb2F0IG1heERlcHRoKQorICAgIHZvaWQgU2V0U2Npc3NvclJlY3QoUEFMOjpXZWJH
UFU6OkludGVnZXJDb29yZGluYXRlIHgsIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB5
LCBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgd2lkdGgsIFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZSBoZWlnaHQpCisgICAgdm9pZCBTZXRCbGVuZENvbnN0YW50KFdlYktpdDo6
V2ViR1BVOjpDb2xvciBjb2xvcikKKyAgICB2b2lkIFNldFN0ZW5jaWxSZWZlcmVuY2UoUEFMOjpX
ZWJHUFU6OlN0ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpCisgICAgdm9pZCBCZWdpbk9jY2x1c2lv
blF1ZXJ5KFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJbmRleCkKKyAgICB2b2lkIEVuZE9jY2x1
c2lvblF1ZXJ5KCkKKyAgICB2b2lkIEJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoV2ViS2l0
OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlJ
bmRleCkKKyAgICB2b2lkIEVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkKKyAgICB2b2lkIEV4
ZWN1dGVCdW5kbGVzKFZlY3RvcjxXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXI+IGJ1bmRsZXMpCisg
ICAgdm9pZCBFbmRQYXNzKCkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhNDBh
OTAzNjQ5OTFlYzY0ZGQzMGI0MGRkYmU3NmJiZTk3ZjE3NTIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVs
aW5lLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlclBpcGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlUmVuZGVyUGlwZWxpbmU6OlJlbW90ZVJlbmRlclBpcGVsaW5lKFBBTDo6V2Vi
R1BVOjpSZW5kZXJQaXBlbGluZSYgcmVuZGVyUGlwZWxpbmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYg
b2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhyZW5kZXJQaXBlbGluZSkKKyAgICAsIG1fb2Jq
ZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVSZW5kZXJQaXBlbGluZTo6flJlbW90
ZVJlbmRlclBpcGVsaW5lKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0
QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGlwZWxpbmU6OnNldExhYmVsKFN0cmluZyYm
IGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGlu
ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5k
ZXJQaXBlbGluZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkZTg4ZmNhZTY5NTE4MDU4YzI0ZjlkMWVkNzcyOTUy
MWNlOTk4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmgKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIFJlbmRlclBpcGVsaW5lOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RI
ZWFwOworfQorCitjbGFzcyBSZW1vdGVSZW5kZXJQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBJUEM6
OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVS
ZW5kZXJQaXBlbGluZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSYgcmVuZGVy
UGlwZWxpbmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVJlbmRlclBpcGVsaW5lKHJlbmRlclBpcGVsaW5l
LCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlUmVuZGVyUGlwZWxp
bmUoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJl
bW90ZVJlbmRlclBpcGVsaW5lKFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSYsIFdlYkdQVTo6
T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlUmVuZGVyUGlwZWxpbmUoY29uc3QgUmVtb3RlUmVu
ZGVyUGlwZWxpbmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZShSZW1vdGVS
ZW5kZXJQaXBlbGluZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZSYgb3Bl
cmF0b3I9KGNvbnN0IFJlbW90ZVJlbmRlclBpcGVsaW5lJikgPSBkZWxldGU7CisgICAgUmVtb3Rl
UmVuZGVyUGlwZWxpbmUmIG9wZXJhdG9yPShSZW1vdGVSZW5kZXJQaXBlbGluZSYmKSA9IGRlbGV0
ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBnZXRCaW5k
R3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgsIFdlYkdQVUlkZW50aWZpZXIpOworCisgICAgdm9p
ZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVs
aW5lPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYzg3OTQ3NzRlMDg2ODFkZDhkMGFiMGYxMDYyODdmZjJmMzNjMzVkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyUGlw
ZWxpbmUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgR2V0QmluZEdyb3VwTGF5b3V0
KHVpbnQzMl90IGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcik7Cisg
ICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGIyNDZjOGM1NjBhNzcyYWJhZWU4MDRjNjFkNTU4OGEwNzY1NmQx
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlU2FtcGxlci5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVyLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitSZW1vdGVTYW1wbGVyOjpSZW1vdGVTYW1wbGVyKFBBTDo6V2ViR1BVOjpTYW1wbGVy
JiBzYW1wbGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tp
bmcoc2FtcGxlcikKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1v
dGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlcjo6
c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVNhbXBsZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlU2FtcGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4Yzk3MWUxMDY5YTFhNjY3NWQ5YzNiMjg1ZDE2
YTZmZTcxN2UyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuaApAQCAtMCwwICsxLDc0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgU2FtcGxlcjsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKwor
Y2xhc3MgUmVtb3RlU2FtcGxlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNl
aXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVTYW1wbGVyPiBjcmVhdGUoUEFM
OjpXZWJHUFU6OlNhbXBsZXImIHNhbXBsZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVh
cCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZXIoc2Ft
cGxlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVNhbXBsZXIo
KTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90
ZVNhbXBsZXIoUEFMOjpXZWJHUFU6OlNhbXBsZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKwor
ICAgIFJlbW90ZVNhbXBsZXIoY29uc3QgUmVtb3RlU2FtcGxlciYpID0gZGVsZXRlOworICAgIFJl
bW90ZVNhbXBsZXIoUmVtb3RlU2FtcGxlciYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTYW1wbGVy
JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlU2FtcGxlciYpID0gZGVsZXRlOworICAgIFJlbW90ZVNh
bXBsZXImIG9wZXJhdG9yPShSZW1vdGVTYW1wbGVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKwor
ICAgIFJlZjxQQUw6OldlYkdQVTo6U2FtcGxlcj4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6
Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjZGFjMWI2OWNjNzZlNjI0ODkxZTg4ZWFkOGQxZDRhNzA2
ZTU1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVNhbXBs
ZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVs
KQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
N2VmMDkzZDc3OWFhNzcxZGVkZmVjZTgxZTU4ZWY4NDdlOGRjNDRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJN
b2R1bGUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlU2hhZGVyTW9kdWxlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1JlbW90ZVNoYWRlck1vZHVsZTo6UmVtb3RlU2hhZGVyTW9kdWxlKFBBTDo6V2ViR1BVOjpT
aGFkZXJNb2R1bGUmIHNoYWRlck1vZHVsZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFw
KQorICAgIDogbV9iYWNraW5nKHNoYWRlck1vZHVsZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmpl
Y3RIZWFwKQoreworfQorCitSZW1vdGVTaGFkZXJNb2R1bGU6On5SZW1vdGVTaGFkZXJNb2R1bGUo
KQoreworfQorCit2b2lkIFJlbW90ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+
JiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3Zv
aWQgUmVtb3RlU2hhZGVyTW9kdWxlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBV
TlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZhMTIwYzBiNTM4MDkxYmE3NGRmZjQxMDMwYTFmYzk0ZDllM2I5NDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNo
YWRlck1vZHVsZS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oIgorI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3Mg
U2hhZGVyTW9kdWxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQ
VSB7CitjbGFzcyBPYmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVTaGFkZXJNb2R1bGUgZmlu
YWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8UmVtb3RlU2hhZGVyTW9kdWxlPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlNoYWRlck1v
ZHVsZSYgc2hhZGVyTW9kdWxlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVTaGFkZXJNb2R1bGUoc2hhZGVy
TW9kdWxlLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlU2hhZGVy
TW9kdWxlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAg
ICBSZW1vdGVTaGFkZXJNb2R1bGUoUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSYsIFdlYkdQVTo6
T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlU2hhZGVyTW9kdWxlKGNvbnN0IFJlbW90ZVNoYWRl
ck1vZHVsZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVNoYWRlck1vZHVsZShSZW1vdGVTaGFkZXJN
b2R1bGUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxlJiBvcGVyYXRvcj0oY29u
c3QgUmVtb3RlU2hhZGVyTW9kdWxlJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxl
JiBvcGVyYXRvcj0oUmVtb3RlU2hhZGVyTW9kdWxlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGNvbXBpbGF0aW9uSW5mbyhXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiYm
KT4mJik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6Oldl
YkdQVTo6U2hhZGVyTW9kdWxlPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVh
cD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljODNhZTZmNWEyZjQxYTY5Nzk0ZjkxMWJjMWNjNWVhNDEy
Nzg1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBA
CisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3Rl
U2hhZGVyTW9kdWxlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIENvbXBpbGF0aW9u
SW5mbygpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4gbWVz
c2FnZXMpIFN5bmNocm9ub3VzCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQxNGQyZjkyNjZiNWJjMDBl
NGJmNTZhNmE3ZjEzMTNlMjQyMjA0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5jcHAKQEAgLTAsMCArMSw2
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVU
ZXh0dXJlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVP
YmplY3RIZWFwLmgiCisjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitSZW1vdGVUZXh0dXJlOjpSZW1vdGVUZXh0dXJlKFBBTDo6V2ViR1BVOjpU
ZXh0dXJlJiB0ZXh0dXJlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBt
X2JhY2tpbmcodGV4dHVyZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQor
CitSZW1vdGVUZXh0dXJlOjp+UmVtb3RlVGV4dHVyZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlVGV4
dHVyZTo6Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQVTo6VGV4dHVyZVZpZXdE
ZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgUmVtb3RlVGV4dHVyZTo6ZGVzdHJveSgpCit7Cit9CisKK3ZvaWQgUmVt
b3RlVGV4dHVyZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFN
KGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMzVlZDI0ODlmNTc2M2Fh
ZjI4ZjA2ZTRlZjg3NGE1ZTA2MmQyZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaApAQCAtMCwwICsxLDc5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJ
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgVGV4dHVyZTsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0
SGVhcDsKK3N0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3I7Cit9CisKK2NsYXNzIFJlbW90ZVRl
eHR1cmUgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UmVtb3RlVGV4dHVyZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpUZXh0
dXJlJiB0ZXh0dXJlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0dXJlKHRleHR1cmUsIG9iamVjdEhl
YXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVUZXh0dXJlKCk7CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVUZXh0dXJlKFBBTDo6
V2ViR1BVOjpUZXh0dXJlJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVUZXh0
dXJlKGNvbnN0IFJlbW90ZVRleHR1cmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlKFJl
bW90ZVRleHR1cmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlVGV4dHVyZSYgb3BlcmF0b3I9KGNv
bnN0IFJlbW90ZVRleHR1cmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJlJiBvcGVyYXRv
cj0oUmVtb3RlVGV4dHVyZSYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVh
bU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworCisgICAgdm9pZCBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BV
OjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lk
IGRlc3Ryb3koKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBB
TDo6V2ViR1BVOjpUZXh0dXJlPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVh
cD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmNmZTlmNjBkY2I5OTY0YmVjNThlZTAxMDM3ZjllZmQ2M2U5YTZmNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMyIEBACisvKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlVGV4dHVyZSBOb3RSZWZD
b3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBDcmVhdGVWaWV3KHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4gZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBEZXN0cm95KCkKKyAgICB2b2lkIFNl
dExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjExYTRhNzg2MzZhZmJlMWFiYmRiMjYzODViY2Y4ODg4NTExNTJjZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHR1cmVWaWV3LmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlldy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmVtb3RlVGV4dHVyZVZpZXc6OlJlbW90ZVRleHR1cmVWaWV3KFBB
TDo6V2ViR1BVOjpUZXh0dXJlVmlldyYgdGV4dHVyZVZpZXcsIFdlYkdQVTo6T2JqZWN0SGVhcCYg
b2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyh0ZXh0dXJlVmlldykKKyAgICAsIG1fb2JqZWN0
SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVUZXh0dXJlVmlldzo6flJlbW90ZVRleHR1
cmVWaWV3KCkKK3sKK30KKwordm9pZCBSZW1vdGVUZXh0dXJlVmlldzo6c2V0TGFiZWwoU3RyaW5n
JiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1
cmVWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAwNWZjYWRiZTQ3NzE4ZGQ5ZDA5YWQ0Mzk0OTYxZDczNTBk
ZGQyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgVGV4dHVyZVZpZXc7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisK
K2NsYXNzIFJlbW90ZVRleHR1cmVWaWV3IGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVRleHR1cmVWaWV3PiBj
cmVhdGUoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3JiB0ZXh0dXJlVmlldywgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVtb3RlVGV4dHVyZVZpZXcodGV4dHVyZVZpZXcsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIH5SZW1vdGVUZXh0dXJlVmlldygpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBj
bGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlVGV4dHVyZVZpZXcoUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVUZXh0dXJlVmll
dyhjb25zdCBSZW1vdGVUZXh0dXJlVmlldyYpID0gZGVsZXRlOworICAgIFJlbW90ZVRleHR1cmVW
aWV3KFJlbW90ZVRleHR1cmVWaWV3JiYpID0gZGVsZXRlOworICAgIFJlbW90ZVRleHR1cmVWaWV3
JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlVGV4dHVyZVZpZXcmKSA9IGRlbGV0ZTsKKyAgICBSZW1v
dGVUZXh0dXJlVmlldyYgb3BlcmF0b3I9KFJlbW90ZVRleHR1cmVWaWV3JiYpID0gZGVsZXRlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0
cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+IG1fYmFja2luZzsK
KyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVy
ZVZpZXcubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVRleHR1cmVWaWV3Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZmRiYjAwMzA4
N2YzZmNjOGZhNDAwYzA0MjNjMWI0NzI0OTY2OWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3Lm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCittZXNzYWdlcyAtPiBSZW1vdGVUZXh0dXJlVmlldyBOb3RSZWZDb3VudGVkIFN0cmVhbSB7
CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RI
ZWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
T2JqZWN0SGVhcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYwZTk0ZjZjMjEwYjBiMGMwOWFhZmE4OTY2NDdl
ZDFmZjc2OTU5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKQEAgLTAsMCArMSwyMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVh
cC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFk
YXB0ZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cC5o
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0Lmg+
CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXIuaD4KKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXIuaD4KKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyLmg+CisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaD4KKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oPgorI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUXVlcnlTZXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVF1ZXVlLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJC
dW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRs
ZUVuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBh
c3NFbmNvZGVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQ
aXBlbGluZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlci5o
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlLmg+Cisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmg+CisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlldy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitPYmplY3RIZWFwOjpPYmplY3RIZWFwKCkKK3sKK30KKworT2JqZWN0
SGVhcDo6fk9iamVjdEhlYXAoKQoreworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QWRhcHRlciog
T2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRlcmF0b3ItPnZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6Oldl
YkdQVTo6QWRhcHRlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6
V2ViR1BVOjpCaW5kR3JvdXAqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1f
b2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMu
ZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3Jv
dXA+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBPYmplY3RI
ZWFwOjpjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlm
aWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRz
X2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0Pj4oaXRlcmF0b3It
PnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJl
ZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsK
K30KKworY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydEJ1ZmZl
ckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0
ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09
IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJH
UFU6OkJ1ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4+KGl0ZXJhdG9yLT52
YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRp
Zmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXI+PihpdGVyYXRvci0+
dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVm
PFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0
Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlm
IChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8
UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6
OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQ
YXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0
ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6
OkNvbXB1dGVQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0
IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21wdXRl
UGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
YXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVy
YXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBB
TDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpDb21w
dXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6Oldl
YkdQVTo6RGV2aWNlKiBPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMu
ZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8
ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPj4oaXRlcmF0
b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0
PFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKwor
Y29uc3QgUEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0SGVhcDo6Y29udmVydEdQVUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9v
YmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5l
bmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkdQVT4+KGl0
ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OkdQVT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisK
K2NvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCogT2JqZWN0SGVhcDo6Y29udmVydFBp
cGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAo
aXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJl
ZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpQ
aXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6
V2ViR1BVOjpRdWVyeVNldCogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29i
amVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVu
ZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+
PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
c3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRy
KCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogT2JqZWN0SGVhcDo6Y29udmVydFF1
ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8g
aXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6Oldl
YkdQVTo6UXVldWU+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52
YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVy
KiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3Rz
LmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8
fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVu
Y29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJh
dG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6Omdl
dDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7
Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVy
KTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2Fs
dGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI+PihpdGVyYXRvci0+
dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVm
PFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7
Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29u
dmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0
aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2Vi
R1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0
IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0g
bV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0
cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNhbXBs
ZXI+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpTYW1wbGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5w
dHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSogT2JqZWN0SGVhcDo6
Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmll
cikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7Cisg
ICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5h
dGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJH
UFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBB
TDo6V2ViR1BVOjpUZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9v
YmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5l
bmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+
PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
c3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIo
KTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBPYmplY3RIZWFwOjpjb252
ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlm
IChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8
UmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEhBVkUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhl
YXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2Jq
ZWN0SGVhcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0NmQxZTUxNzk3YjY2YTBlMzZlNjhiN2M1MTBiYjUwMmJk
MDE5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlIDx2YXJpYW50PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitjbGFz
cyBPYmplY3RIZWFwIGZpbmFsIDogcHVibGljIFdlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29u
dGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxPYmplY3RIZWFwPiBjcmVhdGUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2JqZWN0SGVhcCgpKTsKKyAgICB9CisK
KyAgICB+T2JqZWN0SGVhcCgpOworCitwcml2YXRlOgorICAgIE9iamVjdEhlYXAoKTsKKworICAg
IGNvbnN0IFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAq
IGNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBjb252ZXJ0QmluZEdyb3VwTGF5
b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpX
ZWJHUFU6OkJ1ZmZlciogY29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIp
IGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29t
bWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0
IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNv
bXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlw
ZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
KSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6
OkdQVSogY29udmVydEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAg
IGNvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCogY29udmVydFBpcGVsaW5lTGF5b3V0
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJH
UFU6OlF1ZXJ5U2V0KiBjb252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
KSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6UXVldWUqIGNvbnZlcnRRdWV1ZUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpS
ZW5kZXJCdW5kbGVFbmNvZGVyKiBjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGUqIGNvbnZlcnRSZW5kZXJCdW5kbGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXIqIGNvbnZlcnRS
ZW5kZXJQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAg
IGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogY29udmVydFJlbmRlclBpcGVsaW5l
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJH
UFU6OlNhbXBsZXIqIGNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSogY29udmVydFNoYWRl
ck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBB
TDo6V2ViR1BVOjpUZXh0dXJlKiBjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyogY29udmVy
dFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisKKyAgICB1
c2luZyBPYmplY3QgPSBzdGQ6OnZhcmlhbnQ8CisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6QWRh
cHRlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwPiwKKyAgICAgICAgUmVm
PFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6
OkJ1ZmZlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlcj4sCisgICAg
ICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+LAorICAgICAgICBSZWY8UEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29t
cHV0ZVBpcGVsaW5lPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+LAorICAgICAg
ICBSZWY8UEFMOjpXZWJHUFU6OkdQVT4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UGlwZWxp
bmVMYXlvdXQ+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiwKKyAgICAgICAg
UmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVy
QnVuZGxlRW5jb2Rlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPiwK
KyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4sCisgICAgICAgIFJl
ZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6
OlNhbXBsZXI+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4sCisgICAg
ICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6
VGV4dHVyZVZpZXc+CisgICAgPjsKKyAgICBIYXNoTWFwPFdlYkdQVUlkZW50aWZpZXIsIE9iamVj
dD4gbV9vYmplY3RzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3IuY3BwCmluZGV4IDdlNWVkZmVkOTgwMTVhNGE0NDMwOTg3ZDJmYTdjNzlmMzE2MDk5M2QuLmM0
ZjFjYTljMmVkMjFlYTA2NWZiMTEyMTNiODQ4ZWI3NmFjZmQ5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkxvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCIKIAor
I2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJHUFVQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCmluZGV4IGExMzQ0YWVhMTkzYzk4YWRlNDEyYzFl
YmJkZDVjZjcyOWQ5ZjdjYjUuLjFlZmRlM2JmNzY1YzE2M2E3NWI0NThjNGE1Njc5YmE0OGE2Zjhh
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
YWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCkBAIC0zMSw2ICszMSw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OworCiBjbGFzcyBMb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yIGZpbmFsCiAgICAg
OiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgKaW5kZXgg
OGY3ZDM2MzNkZDAyZDkwYTFhNTYwNGEwMDYzNGUzMWZhNTFiNTdmYS4uMjcwZTFlYmUzMTIzNWY3
Nzg2ZGYwN2I5MDAwYTFjODdhNTdkMjdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVyQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVu
aWZpZWQtc291cmNlcy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVk
LXNvdXJjZXMuc2gKaW5kZXggZWMxMzMyNmZiMGVlODVkZDk2MDYyZTZhNDllMTJlMTU1NDUxNmYw
NS4uODUyYzI1OGM3ZTRjMmMzMjhkNTA3YjlmNTJhYzQ3ODU5ZjMxYmRlOCAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCkBAIC0xNCw3
ICsxNCw3IEBAIGlmIFsgLXogIiR7QlVJTERfU0NSSVBUU19ESVJ9IiBdOyB0aGVuCiAgICAgZmkK
IGZpCiAKLVVuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTAwCitVbmlmaWVkU291cmNlQ3BwRmls
ZUNvdW50PTEwMwogVW5pZmllZFNvdXJjZU1tRmlsZUNvdW50PTgwCiAKIGlmIFsgJCMgLWVxIDAg
XTsgdGhlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggOGJk
MGRiMjk3YmZiNDA3NGY2ODkwMDQyZmNkYTQ3ODQ1MGRmMDU2Ni4uMzE5NmM1Y2Y1ODZkMjRlMTA2
YWYyYmFiMDFlY2I5NDJkZTFiNGYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CkBAIC0zNTgsNiArMzU4LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zv
cndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6VHJhbnNhY3Rpb25JRCcsCiAgICAg
ICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlhSRGV2aWNlSWRlbnRpZmllcicsCkBAIC02NzgsMjEgKzY3OSw2OSBAQCBk
ZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICBoZWFkZXJfaW5mb3NfYW5kX3R5cGVzID0g
Y2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQogCiAgICAgc3BlY2lhbF9jYXNlcyA9IHsKLSAg
ICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3dGYvTWFjaFNlbmRSaWdodC5oPiddLAotICAgICAg
ICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4n
XSwKLSAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNv
bGVUeXBlcy5oPiddLAogICAgICAgICAnSVBDOjpTZW1hcGhvcmUnOiBbJyJJUENTZW1hcGhvcmUu
aCInXSwKICAgICAgICAgJ0luc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3InOiBbJyJJbnNwZWN0b3JF
eHRlbnNpb25UeXBlcy5oIiddLAogICAgICAgICAnSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWw6
OkNvbm5lY3Rpb25UeXBlJzogWyc8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsLmg+J10sCiAgICAgICAgICdJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldFR5cGUnOiBbJzxK
YXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JUYXJnZXQuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRGlzcGxheUxpc3Qu
aD4nXSwKKyAgICAgICAgJ0pTQzo6TWVzc2FnZUxldmVsJzogWyc8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+J10sCisgICAgICAgICdKU0M6Ok1lc3NhZ2VTb3VyY2UnOiBbJzxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKKyAgICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3
dGYvTWFjaFNlbmRSaWdodC5oPiddLAogICAgICAgICAnTWVkaWFUaW1lJzogWyc8d3RmL01lZGlh
VGltZS5oPiddLAogICAgICAgICAnTW9ub3RvbmljVGltZSc6IFsnPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+J10sCisgICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQWRkcmVzc01vZGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCbGVuZEZh
Y3Rvcic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3IuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpCbGVuZE9wZXJhdGlvbic6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZm
ZXJCaW5kaW5nVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGlu
Z1R5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Jzog
Wyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAg
ICdQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2VGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQnVmZmVyVXNhZ2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDYW52YXNDb21w
b3NpdGluZ0FscGhhTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFzQ29t
cG9zaXRpbmdBbHBoYU1vZGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDb2xvcldyaXRl
RmxhZ3MnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yV3JpdGUuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUNvbXBhcmVGdW5jdGlvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNv
bXBpbGF0aW9uTWVzc2FnZVR5cGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBp
bGF0aW9uTWVzc2FnZVR5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpDb21wdXRlUGFz
c1RpbWVzdGFtcExvY2F0aW9uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRl
UGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6Q3VsbE1v
ZGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmg+J10sCisgICAgICAg
ICdQQUw6OldlYkdQVTo6RGVwdGhCaWFzJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJ
bnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNv
bic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oPiddLAor
ICAgICAgICAnUEFMOjpXZWJHUFU6OkVycm9yRmlsdGVyJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVFcnJvckZpbHRlci5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkZlYXR1cmVO
YW1lJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGZWF0dXJlTmFtZS5oPiddLAorICAg
ICAgICAnUEFMOjpXZWJHUFU6OkZpbHRlck1vZGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZpbHRlck1vZGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpGbGFnc0NvbnN0YW50
JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAg
ICAgICdQQUw6OldlYkdQVTo6RnJvbnRGYWNlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVGcm9udEZhY2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpJbmRleDMyJzogWyc8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6
OldlYkdQVTo6SW5kZXhGb3JtYXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4
Rm9ybWF0Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUnOiBb
JzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAg
J1BBTDo6V2ViR1BVOjpMb2FkT3AnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUxvYWRP
cC5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6Ok1hcE1vZGVGbGFncyc6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlBp
cGVsaW5lU3RhdGlzdGljTmFtZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxp
bmVTdGF0aXN0aWNOYW1lLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJl
bmNlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dlclByZWZlcmVuY2UuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZSc6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaD4nXSwKKyAgICAgICAgJ1BB
TDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUHJpbWl0aXZlVG9wb2xvZ3kuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpRdWVyeVR5
cGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oPiddLAorICAgICAg
ICAnUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbic6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+J10sCisgICAg
ICAgICdQQUw6OldlYkdQVTo6U2FtcGxlTWFzayc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5k
aW5nVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBl
Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFncyc6IFsnPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyU3RhZ2UuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2Vi
R1BVOjpTaWduZWRPZmZzZXQzMic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdy
YWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlNpemUzMic6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OlNpemU2NCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24nOiBbJzxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6
V2ViR1BVOjpTdGVuY2lsVmFsdWUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVn
cmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUFjY2Vz
cyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTdG9yZU9wJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVTdG9yZU9wLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVj
dCc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oPiddLAorICAg
ICAgICAnUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRm9ybWF0
Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGUnOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg+J10sCisgICAgICAgICdQ
QUw6OldlYkdQVTo6VGV4dHVyZVVzYWdlRmxhZ3MnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmVVc2FnZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
RGltZW5zaW9uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVu
c2lvbi5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdCc6IFsnPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg+J10sCisgICAgICAgICdQQUw6Oldl
YkdQVTo6VmVydGV4U3RlcE1vZGUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRl
eFN0ZXBNb2RlLmg+J10sCisgICAgICAgICdQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YSc6
IFsnPFdlYkNvcmUvUGxhdGZvcm1YUi5oPiddLAogICAgICAgICAnU2Vjb25kcyc6IFsnPHd0Zi9T
ZWNvbmRzLmg+J10sCisgICAgICAgICdTdHJpbmcnOiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4n
XSwKICAgICAgICAgJ1VSTCc6IFsnPHd0Zi9VUkxIYXNoLmg+J10sCiAgICAgICAgICdXYWxsVGlt
ZSc6IFsnPHd0Zi9XYWxsVGltZS5oPiddLAotICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQv
V1RGU3RyaW5nLmg+J10sCi0gICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9u
SUQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkFyY0RhdGEnOiBbJzxXZWJDb3JlL0lubGluZVBh
dGhEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxX
ZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkJlemllckN1cnZl
RGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERhdGEuaD4nXSwKQEAgLTcwNCwxMiArNzUzLDE0
IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRl
TmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFz
dGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6
IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUnOiBbJzxXZWJDb3JlL0dy
YXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVu
dGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJzogWyc8V2ViQ29yZS9EcmFnRGF0YS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29yZS9EcmFnQWN0
aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ09wZXJhdGlvbic6IFsnPFdlYkNvcmUv
RHJhZ0FjdGlvbnMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24nOiBb
JzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpEeW5hbWljUmFu
Z2VNb2RlJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSc6IFsnPFdlYkNvcmUvR2FtZXBhZFByb3ZpZGVy
Q2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJzogWyc8V2Vi
Q29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaWxl
Q2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPiddLApAQCAtNzM2LDgg
Kzc4Nyw4IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6
TGluZUpvaW4nOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkxvY2tCYWNrRm9yd2FyZExpc3QnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxX
ZWJDb3JlL01lZGlhUGxheWVyLmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQnOiBbJzxXZWJDb3JlL01lZGlhUHJv
ZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzog
Wyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8
V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKQEAg
LTc5NSw5ICs4NDYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dl
YkNvcmU6OldlYkdMTG9hZFBvbGljeSc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyc6IFsnPFdlYkNvcmUvRnJh
bWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdl
SUQnOiBbJyJEcmF3aW5nQXJlYUluZm8uaCInXSwKLSAgICAgICAgJ1dlYktpdDo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgiJ10sCiAgICAg
ICAgICdXZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJRC5oIiddLAogICAgICAg
ICAnV2ViS2l0OjpBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEnOiBbJyJBcHBQcml2YWN5UmVw
b3J0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSWRlbnRp
Zmllcic6IFsnIklkZW50aWZpZXJUeXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktp
dDo6Q2FsbERvd25sb2FkRGlkU3RhcnQnOiBbJyJEb3dubG9hZE1hbmFnZXIuaCInXSwKICAgICAg
ICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6IFsnIkNvbnRlbnRXb3JsZFNoYXJl
ZC5oIiddLApAQCAtODE4LDE1ICs4NjksNzkgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6
CiAgICAgICAgICdXZWJLaXQ6OlNlbGVjdGlvblRvdWNoJzogWyciR2VzdHVyZVR5cGVzLmgiJ10s
CiAgICAgICAgICdXZWJLaXQ6OlRhcElkZW50aWZpZXInOiBbJyJJZGVudGlmaWVyVHlwZXMuaCIn
XSwKICAgICAgICAgJ1dlYktpdDo6VGV4dENoZWNrZXJSZXF1ZXN0SUQnOiBbJyJJZGVudGlmaWVy
VHlwZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9y
JzogWyciV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OkJpbmRHcm91cEVudHJ5JzogWyciV2ViR1BVQmluZEdyb3VwRW50cnkuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJzogWyciV2Vi
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OkJpbmRHcm91cExheW91dEVudHJ5JzogWyciV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCbGVuZENvbXBvbmVudCc6IFsnIldlYkdQ
VUJsZW5kQ29tcG9uZW50LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6QmxlbmRTdGF0
ZSc6IFsnIldlYkdQVUJsZW5kU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpC
dWZmZXJCaW5kaW5nJzogWyciV2ViR1BVQnVmZmVyQmluZGluZy5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdMYXlvdXQnOiBbJyJXZWJHUFVCdWZmZXJCaW5kaW5n
TGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcic6
IFsnIldlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BV
OjpDYW52YXNDb25maWd1cmF0aW9uJzogWyciV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbG9yJzogWyciV2ViR1BVQ29sb3IuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlJzogWyciV2ViR1BVQ29s
b3JUYXJnZXRTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3InOiBbJyJXZWJH
UFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BV
OjpDb21waWxhdGlvbk1lc3NhZ2UnOiBbJyJXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3InOiBbJyJXZWJH
UFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyc6IFsnIldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGVzLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvcic6IFsnIldlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0JzogWyciV2ViR1BV
Q29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6
OkNvbnZlcnRUb0JhY2tpbmdDb250ZXh0JzogWyciV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRl
eHQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpEZXB0aFN0ZW5jaWxTdGF0ZSc6IFsn
IldlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6
RGV2aWNlRGVzY3JpcHRvcic6IFsnIldlYkdQVURldmljZURlc2NyaXB0b3IuaCInXSwKKyAgICAg
ICAgJ1dlYktpdDo6V2ViR1BVOjpFcnJvcic6IFsnIldlYkdQVUVycm9yLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0QnOiBbJyJXZWJHUFVFeHRlbnQzRC5oIiddLAorICAg
ICAgICAnV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQnOiBbJyJX
ZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcic6IFsnIldlYkdQVUV4dGVybmFsVGV4
dHVyZURlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpGcmFnbWVudFN0
YXRlJzogWyciV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OklkZW50aWZpZXInOiBbJyJXZWJHUFVJZGVudGlmaWVyLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyJzogWyciV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgi
J10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSc6IFsn
IldlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpJbWFnZUNvcHlUZXh0dXJlJzogWyciV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oIiddLAor
ICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQnOiBbJyJXZWJH
UFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6
SW1hZ2VEYXRhTGF5b3V0JzogWyciV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0ZSc6IFsnIldlYkdQVU11bHRpc2FtcGxl
U3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFz
ZSc6IFsnIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6
OldlYkdQVTo6T3JpZ2luMkQnOiBbJyJXZWJHUFVPcmlnaW4yRC5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6Ok9yaWdpbjNEJzogWyciV2ViR1BVT3JpZ2luM0QuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpPdXRPZk1lbW9yeUVycm9yJzogWyciV2ViR1BVT3V0T2ZNZW1vcnlF
cnJvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJh
c2UnOiBbJyJXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJzogWyciV2ViR1BVUGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UHJpbWl0aXZl
U3RhdGUnOiBbJyJXZWJHUFVQcmltaXRpdmVTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlByb2dyYW1tYWJsZVN0YWdlJzogWyciV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3InOiBbJyJXZWJH
UFVRdWVyeVNldERlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yJzogWyciV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
JzogWyciV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaCInXSwKKyAgICAgICAg
J1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50JzogWyciV2ViR1BVUmVu
ZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJl
bmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50JzogWyciV2ViR1BVUmVuZGVyUGFzc0RlcHRo
U3RlbmNpbEF0dGFjaG1lbnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQ
YXNzRGVzY3JpcHRvcic6IFsnIldlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFzc0xheW91dCc6IFsnIldlYkdQVVJlbmRlclBh
c3NMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGVzJzogWyciV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oIiddLAorICAg
ICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcic6IFsnIldlYkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6
OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyc6IFsnIldlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nTGF5b3V0JzogWyci
V2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BV
OjpTYW1wbGVyRGVzY3JpcHRvcic6IFsnIldlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgiJ10sCisg
ICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvcic6IFsnIldlYkdQ
VVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpT
dGVuY2lsRmFjZVN0YXRlJzogWyciV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIiddLAorICAgICAg
ICAnV2ViS2l0OjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dCc6IFsnIldlYkdQ
VVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OlN1cHBvcnRlZEZlYXR1cmVzJzogWyciV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMnOiBbJyJXZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpUZXh0dXJlQmluZGlu
Z0xheW91dCc6IFsnIldlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0b3InOiBbJyJXZWJHUFVUZXh0dXJlRGVzY3Jp
cHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRv
cic6IFsnIldlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OlZhbGlkYXRpb25FcnJvcic6IFsnIldlYkdQVVZhbGlkYXRpb25FcnJvci5oIidd
LAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZSc6IFsnIldlYkdQVVZl
cnRleEF0dHJpYnV0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZl
ckxheW91dCc6IFsnIldlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OlZlcnRleFN0YXRlJzogWyciV2ViR1BVVmVydGV4U3RhdGUuaCInXSwKICAg
ICAgICAgJ3N0cnVjdCBXZWJDb3JlOjpDb29raWUnOiBbJzxXZWJDb3JlL0Nvb2tpZS5oPiddLAog
ICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JzogWyc8V2ViQ29yZS9FbGVt
ZW50Q29udGV4dC5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OlZpZGVvUGxheWJhY2tR
dWFsaXR5TWV0cmljcyc6IFsnPFdlYkNvcmUvVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmg+
J10sCisgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGEn
OiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0
cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRhJzogWyciV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpXZWJVc2VyU3R5bGVT
aGVldERhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKLSAg
ICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyRGF0YSc6IFsnIldl
YlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLAogICAgICAgICAnd2VicnRjOjpX
ZWJLaXRFbmNvZGVkRnJhbWVJbmZvJzogWyc8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RW5jb2Rl
ci5oPicsICc8V2ViQ29yZS9MaWJXZWJSVENFbnVtVHJhaXRzLmg+J10sCi0gICAgICAgICdQbGF0
Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YSc6IFsnPFdlYkNvcmUvUGxhdGZvcm1YUi5oPiddLAot
ICAgICAgICAnV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZSc6IFsnPFdlYkNvcmUvUGxhdGZvcm1T
Y3JlZW4uaD4nXSwKICAgICB9CiAKICAgICBoZWFkZXJzID0gW10KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCmluZGV4
IDBlMGViYzQ0NzYwZGU5NzI3OTkwYmM5NzFiYTEzMzg5NDY2MjhhZTMuLmJjY2U1YjkzODZkODlm
N2MwYTEzYzhjYTUzZGQ5M2JmZTI1ZDNhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaApAQCAtMzUsNiArMzUs
MzMgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBCaW5kR3JvdXBEZXNjcmlw
dG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBXZWJHUFVJZGVudGlmaWVy
IGJpbmRHcm91cExheW91dDsKICAgICBWZWN0b3I8QmluZEdyb3VwRW50cnk+IGVudHJpZXM7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmpl
Y3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5kR3JvdXBM
YXlvdXQ7CisgICAgICAgIGVuY29kZXIgPDwgZW50cmllczsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBEZXNjcmlwdG9y
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNv
ZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0
b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGJpbmRHcm91cExheW91dDsKKyAgICAgICAgZGVj
b2RlciA+PiBiaW5kR3JvdXBMYXlvdXQ7CisgICAgICAgIGlmICghYmluZEdyb3VwTGF5b3V0KQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxCaW5kR3JvdXBFbnRyeT4+IGVudHJpZXM7CisgICAgICAgIGRlY29kZXIgPj4gZW50
cmllczsKKyAgICAgICAgaWYgKCFlbnRyaWVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNl
KSwgV1RGTW92ZSgqYmluZEdyb3VwTGF5b3V0KSwgV1RGTW92ZSgqZW50cmllcykgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCmluZGV4IGYzOGRkNTA2
Nzc2NDkyMjZjNGQ3YTAzMGM5ZGU5Y2NiZDZkZDY2MzMuLmQyZjQ5ZDUwODQzN2RiYzlkZmJhZDdi
ZWQ4NjExMzFhYzdkNGU4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCkBAIC00NCw2ICs0NCw1MyBAQCBzdHJ1Y3QgQmluZEdy
b3VwRW50cnkgewogICAgIEJ1ZmZlckJpbmRpbmcgYnVmZmVyQmluZGluZzsKICAgICBXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgQmluZGluZ1Jlc291cmNlVHlwZSB0eXBlOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgYmluZGluZzsKKyAgICAgICAgZW5jb2Rl
ciA8PCBidWZmZXJCaW5kaW5nOworICAgICAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAg
ICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBFbnRyeT4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRleDMy
PiBiaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+IGJpbmRpbmc7CisgICAgICAgIGlmICghYmlu
ZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxCdWZmZXJCaW5kaW5nPiBidWZmZXJCaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+
IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGlmICghYnVmZmVyQmluZGluZykKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVu
dGlmaWVyPiBpZGVudGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAg
ICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxCaW5kaW5nUmVzb3VyY2VUeXBlPiB0eXBlOworICAgICAg
ICBkZWNvZGVyID4+IHR5cGU7CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiaW5kaW5nKSwg
V1RGTW92ZSgqYnVmZmVyQmluZGluZyksIFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZNb3ZlKCp0
eXBlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpX
ZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZSwKKyAgICAg
ICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OlNhbXBsZXIsCisgICAgICAg
IFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBlOjpUZXh0dXJlVmlldywKKyAgICAg
ICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OkJ1ZmZlckJpbmRpbmcsCisg
ICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBlOjpFeHRlcm5hbFRleHR1
cmUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IuaAppbmRleCA2OGJhYmVkYmI2NTM2ZDRiZDQwYjdkNTNiNGFkOTQ2NWIzN2Y2OWViLi5iNGYw
Y2I0YzY2MmVmM2FmMmRhNTU4MjA5ZjJjNzA4YTUwOWM0NTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAK
IHN0cnVjdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0
b3JCYXNlIHsKICAgICBWZWN0b3I8QmluZEdyb3VwTGF5b3V0RW50cnk+IGVudHJpZXM7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBlbnRyaWVzOworICAg
IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJp
bmRHcm91cExheW91dERlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3Jp
cHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAg
ICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEJpbmRHcm91cExheW91dEVu
dHJ5Pj4gZW50cmllczsKKyAgICAgICAgZGVjb2RlciA+PiBlbnRyaWVzOworICAgICAgICBpZiAo
IWVudHJpZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCplbnRyaWVz
KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRF
bnRyeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91
dEVudHJ5LmgKaW5kZXggNDAyYTNmMDkxOTFlODU4ZTU0ZmIzZWNhNzQ2YjlkMzg5ZDNiZjlmMC4u
YjgzMGE1OTE0ODk2ZTVkZjcyNTJmZjRkMGM2MzIwNWM1OTdkZGMxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5
LmgKQEAgLTQ1LDYgKzQ1LDU3IEBAIHN0cnVjdCBCaW5kR3JvdXBMYXlvdXRFbnRyeSB7CiAgICAg
c3RkOjpvcHRpb25hbDxUZXh0dXJlQmluZGluZ0xheW91dD4gdGV4dHVyZTsKICAgICBzdGQ6Om9w
dGlvbmFsPFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4gc3RvcmFnZVRleHR1cmU7CiAgICAg
c3RkOjpvcHRpb25hbDxFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0PiBleHRlcm5hbFRleHR1
cmU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5kaW5nOworICAgICAg
ICBlbmNvZGVyIDw8IHZpc2liaWxpdHk7CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVyOworICAg
ICAgICBlbmNvZGVyIDw8IHNhbXBsZXI7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dHVyZTsKKyAg
ICAgICAgZW5jb2RlciA8PCBzdG9yYWdlVGV4dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBleHRl
cm5hbFRleHR1cmU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QmluZEdyb3VwTGF5b3V0RW50cnk+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW5kZXgzMj4g
YmluZGluZzsKKyAgICAgICAgZGVjb2RlciA+PiBiaW5kaW5nOworICAgICAgICBpZiAoIWJpbmRp
bmcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlNoYWRlclN0YWdlRmxhZ3M+IHZpc2liaWxpdHk7CisgICAgICAg
IGRlY29kZXIgPj4gdmlzaWJpbGl0eTsKKyAgICAgICAgaWYgKCF2aXNpYmlsaXR5KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8QnVmZmVyQmluZGluZ0xheW91dD4+IGJ1ZmZlcjsKKyAgICAgICAgZGVjb2RlciA+
PiBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8U2FtcGxlckJp
bmRpbmdMYXlvdXQ+PiBzYW1wbGVyOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZXI7CisgICAg
ICAgIGlmICghc2FtcGxlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0Pj4g
dGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiB0ZXh0dXJlOworICAgICAgICBpZiAoIXRleHR1
cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ+PiBzdG9yYWdl
VGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiBzdG9yYWdlVGV4dHVyZTsKKyAgICAgICAgaWYg
KCFzdG9yYWdlVGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEV4dGVybmFsVGV4dHVyZUJpbmRpbmdM
YXlvdXQ+PiBleHRlcm5hbFRleHR1cmU7CisgICAgICAgIGRlY29kZXIgPj4gZXh0ZXJuYWxUZXh0
dXJlOworICAgICAgICBpZiAoIWV4dGVybmFsVGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiaW5kaW5nKSwgV1RG
TW92ZSgqdmlzaWJpbGl0eSksIFdURk1vdmUoKmJ1ZmZlciksIFdURk1vdmUoKnNhbXBsZXIpLCBX
VEZNb3ZlKCp0ZXh0dXJlKSwgV1RGTW92ZSgqc3RvcmFnZVRleHR1cmUpLCBXVEZNb3ZlKCpleHRl
cm5hbFRleHR1cmUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5k
Q29tcG9uZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21w
b25lbnQuaAppbmRleCA5NGFjNWEyNDIwYjIzODMwNmZkNTU5NmY1NGY1YzY4YjJiNzZiYjIyLi5l
ZWJmOTNlNzRiMmI3MWM1ZDZlZDQ2YTA3NjgxMDc5OGFmY2QwOGZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaApAQCAtMzQsNiAr
MzQsMzMgQEAgc3RydWN0IEJsZW5kQ29tcG9uZW50IHsKICAgICBQQUw6OldlYkdQVTo6QmxlbmRP
cGVyYXRpb24gb3BlcmF0aW9uOwogICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3RvciBzcmNGYWN0
b3I7CiAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yIGRzdEZhY3RvcjsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICBlbmNvZGVyIDw8IG9wZXJhdGlvbjsKKyAgICAgICAgZW5jb2RlciA8PCBz
cmNGYWN0b3I7CisgICAgICAgIGVuY29kZXIgPDwgZHN0RmFjdG9yOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJsZW5kQ29tcG9uZW50
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uPiBvcGVyYXRpb247CisgICAgICAgIGRlY29kZXIg
Pj4gb3BlcmF0aW9uOworICAgICAgICBpZiAoIW9wZXJhdGlvbikKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Qmxl
bmRGYWN0b3I+IHNyY0ZhY3RvcjsKKyAgICAgICAgZGVjb2RlciA+PiBzcmNGYWN0b3I7CisgICAg
ICAgIGlmICghc3JjRmFjdG9yKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4gZHN0RmFjdG9y
OworICAgICAgICBkZWNvZGVyID4+IGRzdEZhY3RvcjsKKyAgICAgICAgaWYgKCFkc3RGYWN0b3Ip
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqb3BlcmF0aW9uKSwgV1RGTW92ZSgqc3JjRmFjdG9yKSwgV1RGTW92ZSgqZHN0RmFj
dG9yKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCmluZGV4IGE0
MWY1MTdiYzEyYzkxN2E5MmEyZWUxOWE2NDM4MjNiNjRhYTJmYmYuLjllODRiYWNlOWVhOTliMzA1
YTM2OTA2MmVlYmE2NTlkNjI5ZThmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJsZW5kU3RhdGUuaApAQCAtMzIsNiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIHN0cnVjdCBCbGVuZFN0YXRlIHsKICAgICBCbGVuZENvbXBvbmVudCBjb2xv
cjsKICAgICBCbGVuZENvbXBvbmVudCBhbHBoYTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IGNvbG9yOworICAgICAgICBlbmNvZGVyIDw8IGFscGhhOworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJsZW5kU3RhdGU+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxC
bGVuZENvbXBvbmVudD4gY29sb3I7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3I7CisgICAgICAg
IGlmICghY29sb3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8QmxlbmRDb21wb25lbnQ+IGFscGhhOworICAgICAgICBkZWNvZGVyID4+
IGFscGhhOworICAgICAgICBpZiAoIWFscGhhKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvbG9yKSwgV1RGTW92ZSgqYWxw
aGEpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKaW5k
ZXggZDQ1OTgxZjliZDE4NTE0Yjc0MjliZWIxMmUzNDAzOWE1OTVhZjg3YS4uMzE2YjQxNjhhMWQ5
YzUxMjI4NGRhM2VmNmE2MjBhMjczNzg1OGIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCkBAIC0zNiw2ICszNiwzMyBAQCBzdHJ1
Y3QgQnVmZmVyQmluZGluZyB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBidWZmZXI7CiAgICAgUEFM
OjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTY0PiBzaXplOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVy
OworICAgICAgICBlbmNvZGVyIDw8IG9mZnNldDsKKyAgICAgICAgZW5jb2RlciA8PCBzaXplOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEJ1ZmZlckJpbmRpbmc+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiBidWZmZXI7CisgICAgICAgIGRlY29kZXIg
Pj4gYnVmZmVyOworICAgICAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBv
ZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2Zmc2V0OworICAgICAgICBpZiAoIW9mZnNldCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+PiBzaXplOworICAgICAgICBkZWNv
ZGVyID4+IHNpemU7CisgICAgICAgIGlmICghc2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpidWZmZXIpLCBXVEZNb3Zl
KCpvZmZzZXQpLCBXVEZNb3ZlKCpzaXplKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCmluZGV4IGYxZjAxNjVjNzFkY2JhYmMxM2Y0
ZTI5MjUyNTZiNmMxNjRjMWJmZTguLmY5ZDExMGU0YjBiYmU2NWIzZWY1YTI2ZGRmMWNlMzJkNDRi
ZGYyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZm
ZXJCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJ1ZmZlckJpbmRpbmdMYXlvdXQuaApAQCAtMzQsNiArMzQsMzMgQEAgc3RydWN0IEJ1ZmZlckJp
bmRpbmdMYXlvdXQgewogICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZSB0eXBlOwog
ICAgIGJvb2wgaGFzRHluYW1pY09mZnNldDsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IG1pbkJp
bmRpbmdTaXplOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdHlwZTsKKyAg
ICAgICAgZW5jb2RlciA8PCBoYXNEeW5hbWljT2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8IG1p
bkJpbmRpbmdTaXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmdMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVyQmlu
ZGluZ1R5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0
eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPGJvb2w+IGhhc0R5bmFtaWNPZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4gaGFzRHlu
YW1pY09mZnNldDsKKyAgICAgICAgaWYgKCFoYXNEeW5hbWljT2Zmc2V0KQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpTaXplNjQ+IG1pbkJpbmRpbmdTaXplOworICAgICAgICBkZWNvZGVyID4+IG1pbkJpbmRpbmdT
aXplOworICAgICAgICBpZiAoIW1pbkJpbmRpbmdTaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnR5cGUpLCBXVEZNb3Zl
KCpoYXNEeW5hbWljT2Zmc2V0KSwgV1RGTW92ZSgqbWluQmluZGluZ1NpemUpIH0gfTsKKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggNmM3YTE2
MGVhZDk0MWNjMDNiNzQ0ZDlhMjc0MWM4YmEyODE3ZTk1ZC4uOWM1MzQ0YTI0YmYwZDg5ZDYxZjQ4
ZDExZjZmNTc5NDVhOGYwMWMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zNSw2ICszNSwzOSBAQCBzdHJ1Y3Qg
QnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgUEFM
OjpXZWJHUFU6OlNpemU2NCBzaXplOwogICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdz
IHVzYWdlOwogICAgIGJvb2wgbWFwcGVkQXRDcmVhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4o
KnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IHNpemU7CisgICAgICAgIGVuY29kZXIgPDwgdXNh
Z2U7CisgICAgICAgIGVuY29kZXIgPDwgbWFwcGVkQXRDcmVhdGlvbjsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCdWZmZXJEZXNjcmlw
dG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBk
ZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2Ny
aXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemU7CisgICAgICAgIGRlY29kZXIg
Pj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZs
YWdzPiB1c2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiB1c2FnZTsKKyAgICAgICAgaWYgKCF1c2Fn
ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBtYXBwZWRBdENyZWF0aW9uOworICAgICAgICBkZWNvZGVyID4+IG1hcHBlZEF0
Q3JlYXRpb247CisgICAgICAgIGlmICghbWFwcGVkQXRDcmVhdGlvbikKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3RE
ZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnNpemUpLCBXVEZNb3ZlKCp1c2FnZSksIFdURk1vdmUo
Km1hcHBlZEF0Q3JlYXRpb24pIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDYW52YXNDb25maWd1cmF0aW9uLmgKaW5kZXggYjg3NjdmMGExYjA1ODdlZmU4MWMxOWE5YzYx
OTEzMTk5M2YwNzk5Zi4uODRiNGIwOTc1YThkNzE5NDk0ODg2NWFhZTcxN2VlY2UxODYwYjQ5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29uZmlndXJhdGlvbi5oCkBAIC00Nyw2ICs0Nyw1MSBAQCBzdHJ1Y3QgQ2FudmFzQ29uZmlndXJh
dGlvbiB7CiAgICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7
CiAgICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlIGNvbXBvc2l0aW5n
QWxwaGFNb2RlOwogICAgIHN0ZDo6b3B0aW9uYWw8RXh0ZW50M0Q+IHNpemU7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBkZXZpY2U7CisgICAgICAgIGVuY29kZXIgPDwgZm9y
bWF0OworICAgICAgICBlbmNvZGVyIDw8IHVzYWdlOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9y
U3BhY2U7CisgICAgICAgIGVuY29kZXIgPDwgY29tcG9zaXRpbmdBbHBoYU1vZGU7CisgICAgICAg
IGVuY29kZXIgPDwgc2l6ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDYW52YXNDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4g
ZGV2aWNlOworICAgICAgICBkZWNvZGVyID4+IGRldmljZTsKKyAgICAgICAgaWYgKCFkZXZpY2Up
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+
PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFRleHR1cmVVc2FnZUZsYWdzPiB1c2Fn
ZTsKKyAgICAgICAgZGVjb2RlciA+PiB1c2FnZTsKKyAgICAgICAgaWYgKCF1c2FnZSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2U+IGNvbG9yU3BhY2U7CisgICAgICAgIGRlY29k
ZXIgPj4gY29sb3JTcGFjZTsKKyAgICAgICAgaWYgKCFjb2xvclNwYWNlKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZT4gY29tcG9zaXRpbmdBbHBoYU1vZGU7CisgICAg
ICAgIGRlY29kZXIgPj4gY29tcG9zaXRpbmdBbHBoYU1vZGU7CisgICAgICAgIGlmICghY29tcG9z
aXRpbmdBbHBoYU1vZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxFeHRlbnQzRD4+IHNpemU7CisgICAgICAg
IGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmRldmljZSksIFdU
Rk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKnVzYWdlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSksIFdU
Rk1vdmUoKmNvbXBvc2l0aW5nQWxwaGFNb2RlKSwgV1RGTW92ZSgqc2l6ZSkgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb2xvci5oCmluZGV4IDA3NTNjYzZlMDZkZDk4Y2M3YzIyYjYxNmRlZGNi
ZmZmNzdlNGJiZDkuLjRlMGY0MzlkZmY1YmE4YTI0NjE1YjBiMzc4ZDExNDFhODU4YTc5ODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oCkBAIC0zNiw2ICszNiwz
OSBAQCBzdHJ1Y3QgQ29sb3JEaWN0IHsKICAgICBkb3VibGUgZzsKICAgICBkb3VibGUgYjsKICAg
ICBkb3VibGUgYTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHI7CisgICAg
ICAgIGVuY29kZXIgPDwgZzsKKyAgICAgICAgZW5jb2RlciA8PCBiOworICAgICAgICBlbmNvZGVy
IDw8IGE7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8Q29sb3JEaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiByOworICAgICAgICBkZWNvZGVyID4+IHI7CisgICAg
ICAgIGlmICghcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxkb3VibGU+IGc7CisgICAgICAgIGRlY29kZXIgPj4gZzsKKyAgICAgICAg
aWYgKCFnKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4gYjsKKyAgICAgICAgZGVjb2RlciA+PiBiOworICAgICAgICBpZiAo
IWIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiBhOworICAgICAgICBkZWNvZGVyID4+IGE7CisgICAgICAgIGlmICghYSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBX
VEZNb3ZlKCpyKSwgV1RGTW92ZSgqZyksIFdURk1vdmUoKmIpLCBXVEZNb3ZlKCphKSB9IH07Cisg
ICAgfQogfTsKIAogdXNpbmcgQ29sb3IgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPGRvdWJsZT4sIENv
bG9yRGljdD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29sb3JUYXJnZXRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bG9yVGFyZ2V0U3RhdGUuaAppbmRleCBmYmVlNzgxODRhZjNmMDlmNWE5ZjhiN2NmYjBhN2Y3ZjRj
OWEzZmI3Li4yZTMwM2M0N2UwNTIxYTEyOTQ0MTRiMDY5Y2ZlMjM3OTJkM2U2Zjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRl
LmgKQEAgLTM3LDYgKzM3LDMzIEBAIHN0cnVjdCBDb2xvclRhcmdldFN0YXRlIHsKIAogICAgIHN0
ZDo6b3B0aW9uYWw8QmxlbmRTdGF0ZT4gYmxlbmQ7CiAgICAgUEFMOjpXZWJHUFU6OkNvbG9yV3Jp
dGVGbGFncyB3cml0ZU1hc2s7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBm
b3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgYmxlbmQ7CisgICAgICAgIGVuY29kZXIgPDwgd3Jp
dGVNYXNrOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPENvbG9yVGFyZ2V0U3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gZm9y
bWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDxCbGVuZFN0YXRlPj4gYmxlbmQ7CisgICAgICAgIGRlY29kZXIgPj4gYmxl
bmQ7CisgICAgICAgIGlmICghYmxlbmQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9yV3JpdGVGbGFncz4g
d3JpdGVNYXNrOworICAgICAgICBkZWNvZGVyID4+IHdyaXRlTWFzazsKKyAgICAgICAgaWYgKCF3
cml0ZU1hc2spCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqYmxlbmQpLCBXVEZNb3ZlKCp3cml0
ZU1hc2spIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCA2ZGM2M2MzZWY0YjU2NTUxYTZkMjYzYTZmYmE2ODdi
ZGY2MTk0OTk2Li5hZmI2MDgzYzA1NDUxZjI1M2M3ZDJiNWNiNmE0YmViNWVlZjJjM2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CiAKIHN0cnVjdCBDb21tYW5kQnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmpl
Y3REZXNjcmlwdG9yQmFzZSB7CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29tbWFuZEJ1
ZmZlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7
CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICgh
b2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVz
Y3JpcHRvci5oCmluZGV4IGYwN2E1ZjAwNzMxOWFjOTdkMTFjMDU1ODE0NDZjMTBlODNlMzA5ZTYu
LjMzYmViMDllNmQ1ZTA0NzE2ZmQzYjhkYzZhYjUwYzhlNzg2MmE1ZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yLmgKQEAgLTMwLDYgKzMwLDIwIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
ewogCiBzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2Fz
dDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21tYW5kRW5jb2RlckRl
c2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAg
ICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0
RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpIH0gfTsKKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ4ZWE0ZGI1NGFjMjI4YWI4N2MzYjk4ZjQ1ZGIzODcxZWZhMGU5MjYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNz
YWdlLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBp
bGF0aW9uTWVzc2FnZVR5cGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0IENvbXBpbGF0aW9uTWVzc2FnZSB7
CisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2Fn
ZVR5cGUgdHlwZTsKKyAgICB1aW50NjRfdCBsaW5lTnVtOworICAgIHVpbnQ2NF90IGxpbmVQb3M7
CisgICAgdWludDY0X3Qgb2Zmc2V0OworICAgIHVpbnQ2NF90IGxlbmd0aDsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICBlbmNvZGVyIDw8IG1lc3NhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgdHlw
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBsaW5lTnVtOworICAgICAgICBlbmNvZGVyIDw8IGxpbmVQ
b3M7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8IGxlbmd0
aDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxDb21waWxhdGlvbk1lc3NhZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG1lc3NhZ2U7CisgICAgICAgIGRlY29kZXIg
Pj4gbWVzc2FnZTsKKyAgICAgICAgaWYgKCFtZXNzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21waWxh
dGlvbk1lc3NhZ2VUeXBlPiB0eXBlOworICAgICAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgICAg
IGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGluZU51bTsKKyAgICAgICAgZGVjb2RlciA+PiBsaW5l
TnVtOworICAgICAgICBpZiAoIWxpbmVOdW0pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGxpbmVQb3M7CisgICAgICAg
IGRlY29kZXIgPj4gbGluZVBvczsKKyAgICAgICAgaWYgKCFsaW5lUG9zKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBv
ZmZzZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2Zmc2V0OworICAgICAgICBpZiAoIW9mZnNldCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gbGVuZ3RoOworICAgICAgICBkZWNvZGVyID4+IGxlbmd0aDsKKyAgICAgICAg
aWYgKCFsZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqbWVzc2FnZSksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCps
aW5lTnVtKSwgV1RGTW92ZSgqbGluZVBvcyksIFdURk1vdmUoKm9mZnNldCksIFdURk1vdmUoKmxl
bmd0aCkgfSB9OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBh
c3NEZXNjcmlwdG9yLmgKaW5kZXggOTU3ZTZlNDYzM2I3ODY1Y2EwNzE2MDQ3ZWI3YzkxMTk4NmU2
YmEyOC4uN2JiM2UzMThlYmVjMzNlYzhmNzhhODNmMTZkNzU1YzNkMjE0MWNkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rl
c2NyaXB0b3IuaApAQCAtMzIsNiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
IAogc3RydWN0IENvbXB1dGVQYXNzRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9y
QmFzZSB7CiAgICAgQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgdGltZXN0YW1wV3JpdGVzOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
V3JpdGVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPENvbXB1dGVQYXNzRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmpl
Y3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlcz4gdGltZXN0YW1wV3JpdGVzOworICAgICAgICBkZWNvZGVyID4+IHRpbWVzdGFt
cFdyaXRlczsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZXMpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVz
Y3JpcHRvckJhc2UpLCBXVEZNb3ZlKCp0aW1lc3RhbXBXcml0ZXMpIH0gfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMu
aAppbmRleCAxYTA2ZjhmMDI1M2NmMjZmZmZmMGNkYjI0NWRjMjA2ZDQ4NjMzODk1Li40ZjIyZDlh
YWIxZGI2MjhiZjMxMzYyMmM4NDk4YzZhODRhYzI3ZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZXMuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IENvbXB1dGVQYXNzVGltZXN0YW1wV3Jp
dGUgewogICAgIFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQ7CiAgICAgUEFMOjpXZWJHUFU6OlNp
emUzMiBxdWVyeUluZGV4OwogICAgIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcExv
Y2F0aW9uIGxvY2F0aW9uOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgcXVl
cnlTZXQ7CisgICAgICAgIGVuY29kZXIgPDwgcXVlcnlJbmRleDsKKyAgICAgICAgZW5jb2RlciA8
PCBsb2NhdGlvbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4g
cXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gcXVlcnlTZXQ7CisgICAgICAgIGlmICghcXVl
cnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gcXVlcnlJbmRleDsKKyAgICAgICAgZGVjb2Rl
ciA+PiBxdWVyeUluZGV4OworICAgICAgICBpZiAoIXF1ZXJ5SW5kZXgpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24+IGxvY2F0aW9uOworICAgICAgICBkZWNvZGVy
ID4+IGxvY2F0aW9uOworICAgICAgICBpZiAoIWxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnF1ZXJ5U2V0KSwg
V1RGTW92ZSgqcXVlcnlJbmRleCksIFdURk1vdmUoKmxvY2F0aW9uKSB9IH07CisgICAgfQogfTsK
IAogdXNpbmcgQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8Q29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaAppbmRleCBjOTMzMjZhOWU5
Mzc1ZGIzYjUwODA5OTYxNmNjMTM2OTA2YzI5MzNiLi5jZGQ2NWQwOTVmNjhlNWVjYmViOTg3ZDNh
YjMzYjI4YTJjYjY0NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTMyLDYgKzMy
LDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yIDogcHVibGljIFBpcGVsaW5lRGVzY3JpcHRvckJhc2UgewogICAgIFByb2dy
YW1tYWJsZVN0YWdlIGNvbXB1dGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBzdGF0aWNfY2FzdDxjb25zdCBQaXBlbGluZURlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAg
ICAgICBlbmNvZGVyIDw8IGNvbXB1dGU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBpcGVs
aW5lRGVzY3JpcHRvckJhc2U+IHBpcGVsaW5lRGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29k
ZXIgPj4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFwaXBlbGluZURlc2Ny
aXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBjb21wdXRlOworICAgICAgICBkZWNvZGVy
ID4+IGNvbXB1dGU7CisgICAgICAgIGlmICghY29tcHV0ZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwaXBlbGluZURlc2Ny
aXB0b3JCYXNlKSwgV1RGTW92ZSgqY29tcHV0ZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaAppbmRleCAwMjE4
ODI3YjMwMWFjNmQzOGM2YzcyOGQ3OGNlMTlhOWMyOTk1YWI0Li41OTU0NWQ2MDQ2OWFiZWUyNTMw
MmY3YzkzNDdiODQwMjUyN2NjYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgKQEAgLTY4
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZl
ciogY29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2
aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29tbWFuZEJ1
ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0
IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJH
UFU6OkNvbXB1dGVQYXNzRW5jb2RlcjggY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BV
OjpDb21wdXRlUGFzc0VuY29kZXIqIGNvbnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6
Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZSog
Y29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0
dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpHUFUqIGNvbnZlcnRHUFVGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oCmluZGV4IDJlMjE0NzczYTY1ZGI0ZjZjOGFkMjgyMWFj
NjM2YTAwYTViZmY2ODEuLmE1OTdkZjA5NjEzNmRiMzQyOGMyYzY3ZDUyZWM5NjFmZmJjZjYzYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5j
aWxTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0
ZW5jaWxTdGF0ZS5oCkBAIC00OCw2ICs0OCw3NSBAQCBzdHJ1Y3QgRGVwdGhTdGVuY2lsU3RhdGUg
ewogICAgIFBBTDo6V2ViR1BVOjpEZXB0aEJpYXMgZGVwdGhCaWFzOwogICAgIGZsb2F0IGRlcHRo
Qmlhc1Nsb3BlU2NhbGU7CiAgICAgZmxvYXQgZGVwdGhCaWFzQ2xhbXA7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhX
cml0ZUVuYWJsZWQ7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhDb21wYXJlOworICAgICAgICBl
bmNvZGVyIDw8IHN0ZW5jaWxGcm9udDsKKyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsQmFjazsK
KyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsUmVhZE1hc2s7CisgICAgICAgIGVuY29kZXIgPDwg
c3RlbmNpbFdyaXRlTWFzazsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEJpYXM7CisgICAgICAg
IGVuY29kZXIgPDwgZGVwdGhCaWFzU2xvcGVTY2FsZTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0
aEJpYXNDbGFtcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxEZXB0aFN0ZW5jaWxTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAgICBpZiAoIWZvcm1h
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBkZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFdy
aXRlRW5hYmxlZDsKKyAgICAgICAgaWYgKCFkZXB0aFdyaXRlRW5hYmxlZCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6Q29tcGFyZUZ1bmN0aW9uPiBkZXB0aENvbXBhcmU7CisgICAgICAgIGRlY29kZXIgPj4gZGVw
dGhDb21wYXJlOworICAgICAgICBpZiAoIWRlcHRoQ29tcGFyZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRl
PiBzdGVuY2lsRnJvbnQ7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbEZyb250OworICAgICAg
ICBpZiAoIXN0ZW5jaWxGcm9udCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRlPiBzdGVuY2lsQmFjazsKKyAg
ICAgICAgZGVjb2RlciA+PiBzdGVuY2lsQmFjazsKKyAgICAgICAgaWYgKCFzdGVuY2lsQmFjaykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+PiBzdGVuY2lsUmVhZE1h
c2s7CisgICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFJlYWRNYXNrOworICAgICAgICBpZiAoIXN0
ZW5jaWxSZWFkTWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+
PiBzdGVuY2lsV3JpdGVNYXNrOworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxXcml0ZU1hc2s7
CisgICAgICAgIGlmICghc3RlbmNpbFdyaXRlTWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RGVwdGhCaWFz
PiBkZXB0aEJpYXM7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhCaWFzOworICAgICAgICBpZiAo
IWRlcHRoQmlhcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4gZGVwdGhCaWFzU2xvcGVTY2FsZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAgICBpZiAoIWRlcHRoQmlhc1Nsb3BlU2Nh
bGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8ZmxvYXQ+IGRlcHRoQmlhc0NsYW1wOworICAgICAgICBkZWNvZGVyID4+IGRlcHRoQmlh
c0NsYW1wOworICAgICAgICBpZiAoIWRlcHRoQmlhc0NsYW1wKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZvcm1hdCksIFdU
Rk1vdmUoKmRlcHRoV3JpdGVFbmFibGVkKSwgV1RGTW92ZSgqZGVwdGhDb21wYXJlKSwgV1RGTW92
ZSgqc3RlbmNpbEZyb250KSwgV1RGTW92ZSgqc3RlbmNpbEJhY2spLCBXVEZNb3ZlKCpzdGVuY2ls
UmVhZE1hc2spLCBXVEZNb3ZlKCpzdGVuY2lsV3JpdGVNYXNrKSwgV1RGTW92ZSgqZGVwdGhCaWFz
KSwgV1RGTW92ZSgqZGVwdGhCaWFzU2xvcGVTY2FsZSksIFdURk1vdmUoKmRlcHRoQmlhc0NsYW1w
KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5o
CmluZGV4IDg2YTRkNjhmZWY3MTczZTU1ZDU2MTNiZDRhNGI5NTZlMDMwZmUyMmIuLjZhMjUyMzZk
Yzg5YzY2OTg5MDQ3N2VkZGQxZDIzM2E0YjJiNDI0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaApAQCAtMzcsNiArMzcs
MjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBEZXZpY2VEZXNjcmlwdG9y
IDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6
OkZlYXR1cmVOYW1lPiByZXF1aXJlZEZlYXR1cmVzOwogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9y
dCBmb3IgcmVxdWlyZWRMaW1pdHMuCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAg
ICAgZW5jb2RlciA8PCByZXF1aXJlZEZlYXR1cmVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERldmljZURlc2NyaXB0b3I+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3RE
ZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4g
b2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2Up
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZT4+IHJlcXVpcmVkRmVhdHVyZXM7Cisg
ICAgICAgIGRlY29kZXIgPj4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICAgICAgaWYgKCFyZXF1aXJl
ZEZlYXR1cmVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqcmVxdWly
ZWRGZWF0dXJlcykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3Iu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcyZWQyYmRlYjI0N2JjMmE5NzcyODk5ZjdiYzBhNTk4ZDY2NDU0OGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaApAQCAtMCwwICsx
LDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJHUFVPdXRP
Zk1lbW9yeUVycm9yLmgiCisjaW5jbHVkZSAiV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgiCisjaW5j
bHVkZSA8dmFyaWFudD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwordXNpbmcgRXJy
b3IgPSBzdGQ6OnZhcmlhbnQ8T3V0T2ZNZW1vcnlFcnJvciwgVmFsaWRhdGlvbkVycm9yPjsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUV4dGVudDNELmgKaW5kZXggNDczYzRlMTk4ZjUzNTUyOTM2ZGU4MmM5ODBmNmRk
MDljNDFjYjMxZS4uMTkzODM0MjA5NDJiOGYwNGY2NGRiNjZmOGFiNjVmYWM1ZjU3Yjg4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmgKQEAgLTM1LDYg
KzM1LDMzIEBAIHN0cnVjdCBFeHRlbnQzRERpY3QgewogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSB3aWR0aDsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVp
Z2h0OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSBkZXB0aE9yQXJyYXlMYXll
cnM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB3aWR0aDsKKyAgICAgICAg
ZW5jb2RlciA8PCBoZWlnaHQ7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhPckFycmF5TGF5ZXJz
OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEV4dGVudDNERGljdD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gd2lkdGg7Cisg
ICAgICAgIGRlY29kZXIgPj4gd2lkdGg7CisgICAgICAgIGlmICghd2lkdGgpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkludGVnZXJDb29yZGluYXRlPiBoZWlnaHQ7CisgICAgICAgIGRlY29kZXIgPj4gaGVpZ2h0
OworICAgICAgICBpZiAoIWhlaWdodCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+
IGRlcHRoT3JBcnJheUxheWVyczsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aE9yQXJyYXlMYXll
cnM7CisgICAgICAgIGlmICghZGVwdGhPckFycmF5TGF5ZXJzKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKndpZHRoKSwgV1RG
TW92ZSgqaGVpZ2h0KSwgV1RGTW92ZSgqZGVwdGhPckFycmF5TGF5ZXJzKSB9IH07CisgICAgfQog
fTsKIAogdXNpbmcgRXh0ZW50M0QgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZT4sIEV4dGVudDNERGljdD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaAppbmRleCA1MGRhYmZhMjUxNDQ0M2IzMWQ1OTdkZGI2YzEyY2M1OTA2MWIzZDhlLi4y
ZDVjMmZmZGRhODRhNmE0NjJhOGQ3Y2Q1ZGQ4YTdkYWM2NzJmNzEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1
cmVCaW5kaW5nTGF5b3V0LmgKQEAgLTI4LDYgKzI4LDE0IEBACiBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCiBzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCB7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICByZXR1cm4geyB7IH0gfTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgKaW5kZXgg
NmU4MzAxZTNlMWRlMjk1MGJlMzIwOTYzMTZhZGQ2NWI2YjQyMTFmMS4uOTNjNzQ1MTJlNDJlODRm
YjVmMjA2YzY3MWM2ODM2N2VlNDNkZGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCkBA
IC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgRXh0
ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAg
ICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNj
cmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOworICAg
IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3Jp
cHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAg
ICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByZWRlZmluZWRD
b2xvclNwYWNlPiBjb2xvclNwYWNlOworICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7Cisg
ICAgICAgIGlmICghY29sb3JTcGFjZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdU
Rk1vdmUoKmNvbG9yU3BhY2UpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUZyYWdtZW50U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFn
bWVudFN0YXRlLmgKaW5kZXggZGQ0Y2FiMDgxZDViYmNkYjk1YTIzOGQ0MWMyZWE1M2Y4YTRjMTNl
OS4uOWY5NmVlMTZkY2I2Y2E0N2FhODJjYzI4NDY2OTNlOTY2ZTFjZWY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oCkBAIC0zMyw2
ICszMywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgRnJhZ21lbnRT
dGF0ZSA6IHB1YmxpYyBQcm9ncmFtbWFibGVTdGFnZSB7CiAgICAgVmVjdG9yPENvbG9yVGFyZ2V0
U3RhdGU+IHRhcmdldHM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFnZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0YXJnZXRzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEZyYWdtZW50U3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQcm9ncmFtbWFibGVTdGFnZT4gcHJvZ3JhbW1h
YmxlU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gcHJvZ3JhbW1hYmxlU3RhZ2U7CisgICAgICAg
IGlmICghcHJvZ3JhbW1hYmxlU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPENvbG9yVGFyZ2V0U3RhdGU+PiB0YXJn
ZXRzOworICAgICAgICBkZWNvZGVyID4+IHRhcmdldHM7CisgICAgICAgIGlmICghdGFyZ2V0cykK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBX
VEZNb3ZlKCpwcm9ncmFtbWFibGVTdGFnZSksIFdURk1vdmUoKnRhcmdldHMpIH0gfTsKKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCmluZGV4IDAzNTRmYzU2
NjE4NjAyMDdlYWM0NTU0YzJiYzZkNmRiOTBkMjQwODMuLjExODY2MGU3N2Q2OTU2NThiODcyMmIz
ZTQ3ZTJmYTJmZjVjZWU0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBJbWFnZUNvcHlCdWZmZXIgOiBwdWJsaWMgSW1hZ2VE
YXRhTGF5b3V0IHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlcjsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IEltYWdlRGF0YUxheW91dCY+
KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXI7CisgICAgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5QnVmZmVyPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8SW1h
Z2VEYXRhTGF5b3V0PiBpbWFnZURhdGFMYXlvdXQ7CisgICAgICAgIGRlY29kZXIgPj4gaW1hZ2VE
YXRhTGF5b3V0OworICAgICAgICBpZiAoIWltYWdlRGF0YUxheW91dCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlm
aWVyPiBidWZmZXI7CisgICAgICAgIGRlY29kZXIgPj4gYnVmZmVyOworICAgICAgICBpZiAoIWJ1
ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCppbWFnZURhdGFMYXlvdXQpLCBXVEZNb3ZlKCpidWZmZXIpIH0gfTsKKyAg
ICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
LmgKaW5kZXggMDcxMTBkYmQzODBkYzY1N2QxODM3YTQ0NmRjN2UwZWQ0MDZjMGRjZS4uMWU1NTI4
YjljNTRjYzFkOTdkZWZmZGMxOTMyZjJlYTExMDlhOWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5o
CkBAIC0zMiw4ICszMiwyMyBAQAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0
IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewotICAgIC8vIHN0ZDo6dmFyaWFudDxSZWZQdHI8SW1h
Z2VCaXRtYXA+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PiBzb3VyY2U7CisgICAgLy8gRklY
TUU6IEhhbmRsZSB0aGUgc291cmNlLgogICAgIHN0ZDo6b3B0aW9uYWw8T3JpZ2luMkQ+IG9yaWdp
bjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9yaWdpbjsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJbWFnZUNv
cHlFeHRlcm5hbEltYWdlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxPcmlnaW4yRD4+IG9yaWdpbjsKKyAgICAgICAg
ZGVjb2RlciA+PiBvcmlnaW47CisgICAgICAgIGlmICghb3JpZ2luKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9yaWdpbikg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaApp
bmRleCBiZDVjNzA0YjA0Y2Y0MjViMjMyNzFiZjMwMGY3MDc0N2Q1ZDkyNzg4Li44YTIzMDZhODQ0
MzFmY2Q1ODAxMWY1ZWM4OGZhN2FhMGM0ODk5NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKQEAgLTM5LDYgKzM5LDM5
IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlIHsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNv
b3JkaW5hdGUgbWlwTGV2ZWw7CiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4zRD4gb3JpZ2luOwog
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0IGFzcGVjdDsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgewor
ICAgICAgICBlbmNvZGVyIDw8IHRleHR1cmU7CisgICAgICAgIGVuY29kZXIgPDwgbWlwTGV2ZWw7
CisgICAgICAgIGVuY29kZXIgPDwgb3JpZ2luOworICAgICAgICBlbmNvZGVyIDw8IGFzcGVjdDsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxJbWFnZUNvcHlUZXh0dXJlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gdGV4dHVyZTsKKyAgICAgICAgZGVj
b2RlciA+PiB0ZXh0dXJlOworICAgICAgICBpZiAoIXRleHR1cmUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Oklu
dGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbDsKKyAgICAgICAgZGVjb2RlciA+PiBtaXBMZXZlbDsK
KyAgICAgICAgaWYgKCFtaXBMZXZlbCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPE9yaWdpbjNEPj4gb3JpZ2lu
OworICAgICAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q+IGFzcGVjdDsKKyAgICAgICAgZGVjb2RlciA+PiBhc3Bl
Y3Q7CisgICAgICAgIGlmICghYXNwZWN0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnRleHR1cmUpLCBXVEZNb3ZlKCptaXBM
ZXZlbCksIFdURk1vdmUoKm9yaWdpbiksIFdURk1vdmUoKmFzcGVjdCkgfSB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaAppbmRl
eCA1NTVhZjBlMWFiZWY2MzUyNGE3N2EwNTg3NDBjZWYxNDZiYWUyMGJkLi44NDliYzRlODYxYzMz
NjNhNjkwOTNlY2ZmOTFiMGY1ZDUyMGU0NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgKQEAgLTMz
LDYgKzMzLDMzIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgSW1hZ2VDb3B5
VGV4dHVyZVRhZ2dlZCA6IHB1YmxpYyBJbWFnZUNvcHlUZXh0dXJlIHsKICAgICBQQUw6OldlYkdQ
VTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZTsKICAgICBib29sIHByZW11bHRpcGxp
ZWRBbHBoYTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0
PGNvbnN0IEltYWdlQ29weVRleHR1cmUmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgY29s
b3JTcGFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VD
b3B5VGV4dHVyZVRhZ2dlZD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEltYWdlQ29weVRleHR1cmU+IGltYWdlQ29weVRleHR1cmU7CisgICAg
ICAgIGRlY29kZXIgPj4gaW1hZ2VDb3B5VGV4dHVyZTsKKyAgICAgICAgaWYgKCFpbWFnZUNvcHlU
ZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsK
KyAgICAgICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOworICAgICAgICBpZiAoIWNvbG9yU3BhY2Up
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gcHJlbXVsdGlwbGllZEFscGhhOworICAgICAgICBkZWNvZGVyID4+IHByZW11bHRp
cGxpZWRBbHBoYTsKKyAgICAgICAgaWYgKCFwcmVtdWx0aXBsaWVkQWxwaGEpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqaW1h
Z2VDb3B5VGV4dHVyZSksIFdURk1vdmUoKmNvbG9yU3BhY2UpLCBXVEZNb3ZlKCpwcmVtdWx0aXBs
aWVkQWxwaGEpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0
YUxheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxh
eW91dC5oCmluZGV4IDFlNWRkMGE0NjcxNmQ4OGQwY2Q3YTJhNmNhYTcwOTczZGZiZmI5NzQuLmNl
NGNlMzkxNDczMDNmZTcwZTI3ZjY5YWFiZTBjZTVjMWExNTdiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmgKQEAgLTM0LDYg
KzM0LDMzIEBAIHN0cnVjdCBJbWFnZURhdGFMYXlvdXQgewogICAgIFBBTDo6V2ViR1BVOjpTaXpl
NjQgb2Zmc2V0OwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gYnl0ZXNQ
ZXJSb3c7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiByb3dzUGVySW1h
Z2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAg
IGVuY29kZXIgPDwgYnl0ZXNQZXJSb3c7CisgICAgICAgIGVuY29kZXIgPDwgcm93c1BlckltYWdl
OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEltYWdlRGF0YUxheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldDsKKyAgICAgICAg
ZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAgIGlmICghb2Zmc2V0KQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlNpemUzMj4+IGJ5dGVzUGVyUm93OworICAgICAgICBkZWNvZGVyID4+IGJ5
dGVzUGVyUm93OworICAgICAgICBpZiAoIWJ5dGVzUGVyUm93KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlNpemUzMj4+IHJvd3NQZXJJbWFnZTsKKyAgICAgICAgZGVjb2RlciA+PiByb3dz
UGVySW1hZ2U7CisgICAgICAgIGlmICghcm93c1BlckltYWdlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9mZnNldCksIFdU
Rk1vdmUoKmJ5dGVzUGVyUm93KSwgV1RGTW92ZSgqcm93c1BlckltYWdlKSB9IH07CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oCmluZGV4IGJkMTFiZTJl
YzFlYzFiMmU0NzkxYzllZDgzMmM5YWMwMzAzYjE3OGEuLjhkZTVkNThkOTgzMTlmOGQ5MTg4ODg2
YzQ0MTAwOTYwMWMzZjk3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaApAQCAtMzMsNiArMzMsMzMgQEAgc3RydWN0IE11
bHRpc2FtcGxlU3RhdGUgewogICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgY291bnQ7CiAgICAgUEFM
OjpXZWJHUFU6OlNhbXBsZU1hc2sgbWFzazsKICAgICBib29sIGFscGhhVG9Db3ZlcmFnZUVuYWJs
ZWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjb3VudDsKKyAgICAgICAg
ZW5jb2RlciA8PCBtYXNrOworICAgICAgICBlbmNvZGVyIDw8IGFscGhhVG9Db3ZlcmFnZUVuYWJs
ZWQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8TXVsdGlzYW1wbGVTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IGNvdW50OworICAgICAg
ICBkZWNvZGVyID4+IGNvdW50OworICAgICAgICBpZiAoIWNvdW50KQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
YW1wbGVNYXNrPiBtYXNrOworICAgICAgICBkZWNvZGVyID4+IG1hc2s7CisgICAgICAgIGlmICgh
bWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxib29sPiBhbHBoYVRvQ292ZXJhZ2VFbmFibGVkOworICAgICAgICBkZWNvZGVyID4+
IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAgICAgIGlmICghYWxwaGFUb0NvdmVyYWdlRW5h
YmxlZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpjb3VudCksIFdURk1vdmUoKm1hc2spLCBXVEZNb3ZlKCphbHBoYVRvQ292
ZXJhZ2VFbmFibGVkKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmpl
Y3REZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9i
amVjdERlc2NyaXB0b3JCYXNlLmgKaW5kZXggMjM4NzkwMGE0NjE0ZGY4ZjBjY2JkZTc4Njk3N2I5
MjA3YTk1MWU2Ni4uNGZjYjlmNTU4Nzc2ZjQzYzE2OGJlNDBlMjcyMTZiNGU0OTMwYTM2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmgKQEAgLTMxLDYgKzMxLDIxIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiAKIHN0cnVjdCBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgU3RyaW5nIGxhYmVsOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbGFiZWw7CisgICAgfQorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IGxhYmVsOworICAgICAgICBkZWNvZGVyID4+IGxhYmVsOworICAgICAg
ICBpZiAoIWxhYmVsKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmxhYmVsKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVPcmlnaW4yRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU9yaWdpbjJELmgKaW5kZXggZmRjNjY3MTAzMDdlYjQ0ZGQ5MWJmMWU4N2M0Njc0ZjE4NGMwNjA4
Mi4uZGYxZmZmZDU3ODQzOTUyM2JkYzcyMTE0MzMyN2IwYzZmZTNhNzc3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKQEAgLTM0LDYgKzM0LDI3IEBA
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgT3JpZ2luMkREaWN0IHsKICAgICBQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeDsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdl
ckNvb3JkaW5hdGUgeTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHg7Cisg
ICAgICAgIGVuY29kZXIgPDwgeTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPcmlnaW4yRERpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNv
b3JkaW5hdGU+IHg7CisgICAgICAgIGRlY29kZXIgPj4geDsKKyAgICAgICAgaWYgKCF4KQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4geTsKKyAgICAgICAgZGVjb2RlciA+PiB5Owor
ICAgICAgICBpZiAoIXkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqeCksIFdURk1vdmUoKnkpIH0gfTsKKyAgICB9CiB9Owog
CiB1c2luZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlPiwgT3JpZ2luMkREaWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVU9yaWdpbjNELmgKaW5kZXggM2U0NzQyNTM1Yzg5NDY0ODIzOTBlMWU4ZjQ0Y2Zi
MGQwYTZhZmM4Yi4uY2Y3NDVhNDIwNzRhY2IyMGZlNzUxNDZjMGU5NDUzMGU2NzRjOGU4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmgKQEAgLTM1LDYg
KzM1LDMzIEBAIHN0cnVjdCBPcmlnaW4zRERpY3QgewogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSB4OwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB5OwogICAg
IFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB6OworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgeDsKKyAgICAgICAgZW5jb2RlciA8PCB5OworICAgICAgICBlbmNvZGVy
IDw8IHo7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8T3JpZ2luM0REaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7Cisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB4Owor
ICAgICAgICBkZWNvZGVyID4+IHg7CisgICAgICAgIGlmICgheCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGU+IHk7CisgICAgICAgIGRlY29kZXIgPj4geTsKKyAgICAgICAgaWYgKCF5
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gejsKKyAgICAgICAgZGVjb2RlciA+
PiB6OworICAgICAgICBpZiAoIXopCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqeCksIFdURk1vdmUoKnkpLCBXVEZNb3ZlKCp6
KSB9IH07CisgICAgfQogfTsKIAogdXNpbmcgT3JpZ2luM0QgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9y
PFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4sIE9yaWdpbjNERGljdD47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YzY5MzU3NTcxYWYxN2VmOWU3Zjc2NDIzODc3ZmYzNDg0YWE2NjVhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVt
b3J5RXJyb3IuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0cnVjdCBPdXRPZk1lbW9yeUVycm9yIHsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxPdXRPZk1lbW9yeUVycm9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsgfSB9OworICAgIH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCBlMjQ5MmFlMDk4
Y2VkZjg4Y2ViY2RlOWE0MDM4ODEwOGJkYTc2OWIzLi41YzRiNzA3OTAwNTFjZmMxZjdjNTU5NTE2
NjhiOWY0NWIwNTVlMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKQEAgLTMyLDYgKzMyLDI3IEBA
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBQaXBlbGluZURlc2NyaXB0b3JC
YXNlIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBXZWJHUFVJZGVudGlmaWVy
IGxheW91dDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0
PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8
IGxheW91dDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JCYXNlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9i
amVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JC
YXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZp
ZXI+IGxheW91dDsKKyAgICAgICAgZGVjb2RlciA+PiBsYXlvdXQ7CisgICAgICAgIGlmICghbGF5
b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqbGF5b3V0KSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaAppbmRleCA2NDE3MzBlYmE2OTlkN2JlMmU5MGQxYzA0ZGM5MmUxMjdkZTEyN2Jm
Li44MGEyMDE3ZmJjZjlkODRlZTM0MDI0OTdhNmNiYjQ3OTg2ZjA1NzdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvci5oCkBAIC0zMyw2ICszMywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
ewogCiBzdHJ1Y3QgUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKICAgICBWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4gYmluZEdyb3VwTGF5b3V0
czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0
IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJpbmRH
cm91cExheW91dHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJh
c2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2Ny
aXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJHUFVJZGVudGlmaWVyPj4gYmluZEdyb3VwTGF5b3V0czsKKyAgICAgICAgZGVjb2RlciA+PiBi
aW5kR3JvdXBMYXlvdXRzOworICAgICAgICBpZiAoIWJpbmRHcm91cExheW91dHMpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
b2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpiaW5kR3JvdXBMYXlvdXRzKSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKaW5kZXggYjg2ODc1
YmI1MWVmNGM5MzcyZDhmMjVkMmFiMzM1OTI2MTViNzRiMy4uZDE4MjMzMjIzZDk3MGE4ZjA5OTA2
MjU4NzgxMTVhYTQ3NTRiNDg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKQEAgLTQyLDYgKzQyLDQ1IEBAIHN0cnVjdCBQcmlt
aXRpdmVTdGF0ZSB7CiAKICAgICAvLyBSZXF1aXJlcyAiZGVwdGgtY2xpcC1jb250cm9sIiBmZWF0
dXJlLgogICAgIGJvb2wgdW5jbGlwcGVkRGVwdGg7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCB0b3BvbG9neTsKKyAgICAgICAgZW5jb2RlciA8PCBzdHJpcEluZGV4Rm9ybWF0
OworICAgICAgICBlbmNvZGVyIDw8IGZyb250RmFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBjdWxs
TW9kZTsKKyAgICAgICAgZW5jb2RlciA8PCB1bmNsaXBwZWREZXB0aDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQcmltaXRpdmVTdGF0
ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neT4gdG9wb2xvZ3k7CisgICAgICAgIGRlY29k
ZXIgPj4gdG9wb2xvZ3k7CisgICAgICAgIGlmICghdG9wb2xvZ3kpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6SW5kZXhGb3JtYXQ+PiBzdHJpcEluZGV4Rm9ybWF0OworICAgICAgICBkZWNv
ZGVyID4+IHN0cmlwSW5kZXhGb3JtYXQ7CisgICAgICAgIGlmICghc3RyaXBJbmRleEZvcm1hdCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6RnJvbnRGYWNlPiBmcm9udEZhY2U7CisgICAgICAgIGRlY29kZXIgPj4g
ZnJvbnRGYWNlOworICAgICAgICBpZiAoIWZyb250RmFjZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q3VsbE1v
ZGU+IGN1bGxNb2RlOworICAgICAgICBkZWNvZGVyID4+IGN1bGxNb2RlOworICAgICAgICBpZiAo
IWN1bGxNb2RlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IHVuY2xpcHBlZERlcHRoOworICAgICAgICBkZWNvZGVyID4+IHVu
Y2xpcHBlZERlcHRoOworICAgICAgICBpZiAoIXVuY2xpcHBlZERlcHRoKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnRvcG9s
b2d5KSwgV1RGTW92ZSgqc3RyaXBJbmRleEZvcm1hdCksIFdURk1vdmUoKmZyb250RmFjZSksIFdU
Rk1vdmUoKmN1bGxNb2RlKSwgV1RGTW92ZSgqdW5jbGlwcGVkRGVwdGgpIH0gfTsKKyAgICB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAppbmRleCBjNWI0MTY4
MDZhOWNmY2NmZGEyZjBmMGJkNjIzNzYyMzI2NDgyMjcwLi5lMWYwYWUwZDY5ZjI5YmI5ZmY3ODJl
ZWQ2MmQzNmQzODU3YzE5ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaApAQCAtMzgsNiArMzgsMzMgQEAgc3RydWN0
IFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIG1vZHVsZTsKICAgICBT
dHJpbmcgZW50cnlQb2ludDsKICAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgUGlwZWxp
bmVDb25zdGFudFZhbHVlPj4gY29uc3RhbnRzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVu
Y29kZXIgPDwgbW9kdWxlOworICAgICAgICBlbmNvZGVyIDw8IGVudHJ5UG9pbnQ7CisgICAgICAg
IGVuY29kZXIgPDwgY29uc3RhbnRzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0YWdlPiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmll
cj4gbW9kdWxlOworICAgICAgICBkZWNvZGVyID4+IG1vZHVsZTsKKyAgICAgICAgaWYgKCFtb2R1
bGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBlbnRyeVBvaW50OworICAgICAgICBkZWNvZGVyID4+IGVudHJ5UG9pbnQ7
CisgICAgICAgIGlmICghZW50cnlQb2ludCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
UGlwZWxpbmVDb25zdGFudFZhbHVlPj4+IGNvbnN0YW50czsKKyAgICAgICAgZGVjb2RlciA+PiBj
b25zdGFudHM7CisgICAgICAgIGlmICghY29uc3RhbnRzKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm1vZHVsZSksIFdURk1v
dmUoKmVudHJ5UG9pbnQpLCBXVEZNb3ZlKCpjb25zdGFudHMpIH0gfTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCmluZGV4IGNkNDViNjYxMGE3
YzA4NzU1Y2JlYTU0MmFlYjEwYjYwMjg4NTczMjIuLmJlMTEyZDkyNTY2NWRiYTRhMDIzYWY0N2Vl
ZDlmODI0YWI5M2I5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKQEAgLTM3LDYgKzM3LDM5IEBAIHN0cnVjdCBR
dWVyeVNldERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFBB
TDo6V2ViR1BVOjpRdWVyeVR5cGUgdHlwZTsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGNvdW50
OwogICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lPiBwaXBlbGlu
ZVN0YXRpc3RpY3M7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8IGNvdW50OworICAgICAgICBlbmNvZGVyIDw8
IHBpcGVsaW5lU3RhdGlzdGljczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxRdWVyeVNldERlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9y
QmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlF1ZXJ5VHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAg
ICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gY291bnQ7CisgICAgICAgIGRlY29k
ZXIgPj4gY291bnQ7CisgICAgICAgIGlmICghY291bnQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpQ
aXBlbGluZVN0YXRpc3RpY05hbWU+PiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAgIGRlY29k
ZXIgPj4gcGlwZWxpbmVTdGF0aXN0aWNzOworICAgICAgICBpZiAoIXBpcGVsaW5lU3RhdGlzdGlj
cykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3Zl
KCpjb3VudCksIFdURk1vdmUoKnBpcGVsaW5lU3RhdGlzdGljcykgfSB9OworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaAppbmRleCAw
ODFiYTY0YjBlMWQ5MmE0YjkwNzA3ZmU3NDJhZTcxMmM1ZDQ2NGIzLi5jMDk2MjgwNzY0MWJmOWNh
NDAxZDgxMmJhMjAwMzFiMmVhOTAwYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKQEAgLTMwLDYg
KzMwLDIwIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgUmVuZGVyQnVu
ZGxlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPigqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyQnVuZGxlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JC
YXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNj
cmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpv
YmplY3REZXNjcmlwdG9yQmFzZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oCmluZGV4IDU0MTc5
MTljYmQ3YWIyNWJlOGJkOGVjMThkYzAzYzBiNWQ1NzE5Y2MuLmUyOWNkNTRiOTVjYTQwYWMwYWQ4
YmU1OWU3NDgzMmQyZGU4ZGI0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5o
CkBAIC0zMiw2ICszMiwzMyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IFJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIFJlbmRlclBhc3NMYXlvdXQgewog
ICAgIGJvb2wgZGVwdGhSZWFkT25seTsKICAgICBib29sIHN0ZW5jaWxSZWFkT25seTsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclBh
c3NMYXlvdXQmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhSZWFkT25seTsKKyAg
ICAgICAgZW5jb2RlciA8PCBzdGVuY2lsUmVhZE9ubHk7CisgICAgfQorCisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiByZW5kZXJQYXNzTGF5b3V0OworICAgICAgICBkZWNv
ZGVyID4+IHJlbmRlclBhc3NMYXlvdXQ7CisgICAgICAgIGlmICghcmVuZGVyUGFzc0xheW91dCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxib29sPiBkZXB0aFJlYWRPbmx5OworICAgICAgICBkZWNvZGVyID4+IGRlcHRoUmVhZE9ubHk7
CisgICAgICAgIGlmICghZGVwdGhSZWFkT25seSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBzdGVuY2lsUmVhZE9ubHk7Cisg
ICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFJlYWRPbmx5OworICAgICAgICBpZiAoIXN0ZW5jaWxS
ZWFkT25seSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpyZW5kZXJQYXNzTGF5b3V0KSwgV1RGTW92ZSgqZGVwdGhSZWFkT25s
eSksIFdURk1vdmUoKnN0ZW5jaWxSZWFkT25seSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaAppbmRleCBlMGYz
Yzg5M2IxY2JhNzEzMDhmNzhjOGM3NjI1MjE4ZDRiMzI3MDEzLi5iMGQ4OTI3ZWYyYmE4YTMwYjll
YTZiNmQ1ZGY0N2UxNDg2NGVjN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKQEAgLTQx
LDYgKzQxLDM5IEBAIHN0cnVjdCBSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50IHsKIAogICAgIHN0
ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgQ29sb3JEaWN0
PiBsb2FkVmFsdWU7CiAgICAgUEFMOjpXZWJHUFU6OlN0b3JlT3Agc3RvcmVPcDsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHZpZXc7CisgICAgICAgIGVuY29kZXIgPDwgcmVz
b2x2ZVRhcmdldDsKKyAgICAgICAgZW5jb2RlciA8PCBsb2FkVmFsdWU7CisgICAgICAgIGVuY29k
ZXIgPDwgc3RvcmVPcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmll
cj4gdmlldzsKKyAgICAgICAgZGVjb2RlciA+PiB2aWV3OworICAgICAgICBpZiAoIXZpZXcpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
V2ViR1BVSWRlbnRpZmllcj4gcmVzb2x2ZVRhcmdldDsKKyAgICAgICAgZGVjb2RlciA+PiByZXNv
bHZlVGFyZ2V0OworICAgICAgICBpZiAoIXJlc29sdmVUYXJnZXQpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBB
TDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxkb3VibGU+LCBDb2xvckRpY3Q+PiBsb2FkVmFsdWU7
CisgICAgICAgIGRlY29kZXIgPj4gbG9hZFZhbHVlOworICAgICAgICBpZiAoIWxvYWRWYWx1ZSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gc3RvcmVPcDsKKyAgICAgICAgZGVjb2RlciA+PiBzdG9y
ZU9wOworICAgICAgICBpZiAoIXN0b3JlT3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdmlldyksIFdURk1vdmUoKnJlc29s
dmVUYXJnZXQpLCBXVEZNb3ZlKCpsb2FkVmFsdWUpLCBXVEZNb3ZlKCpzdG9yZU9wKSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0
YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NE
ZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKaW5kZXggNjhhNDg0YjAzM2QyMTUyMWJkZDM2M2ZmYmI3
MGRhM2Y4ZjM5OGRmYi4uZTgyZWQ2YzgxZThhY2E3ODVjODA1OGMwMzI0MjZlZTVmMGMyYmI0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NE
ZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKQEAgLTQ0LDYgKzQ0LDU3
IEBAIHN0cnVjdCBSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudCB7CiAgICAgc3RkOjp2
YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+IHN0
ZW5jaWxMb2FkVmFsdWU7CiAgICAgUEFMOjpXZWJHUFU6OlN0b3JlT3Agc3RlbmNpbFN0b3JlT3A7
CiAgICAgYm9vbCBzdGVuY2lsUmVhZE9ubHk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCB2aWV3OworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoTG9hZFZhbHVlOworICAgICAg
ICBlbmNvZGVyIDw8IGRlcHRoU3RvcmVPcDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFJlYWRP
bmx5OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxMb2FkVmFsdWU7CisgICAgICAgIGVuY29k
ZXIgPDwgc3RlbmNpbFN0b3JlT3A7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbFJlYWRPbmx5
OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50PiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gdmll
dzsKKyAgICAgICAgZGVjb2RlciA+PiB2aWV3OworICAgICAgICBpZiAoIXZpZXcpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2
YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIGZsb2F0Pj4gZGVwdGhMb2FkVmFsdWU7CisgICAg
ICAgIGRlY29kZXIgPj4gZGVwdGhMb2FkVmFsdWU7CisgICAgICAgIGlmICghZGVwdGhMb2FkVmFs
dWUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JlT3A+IGRlcHRoU3RvcmVPcDsKKyAgICAgICAgZGVjb2Rl
ciA+PiBkZXB0aFN0b3JlT3A7CisgICAgICAgIGlmICghZGVwdGhTdG9yZU9wKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGRl
cHRoUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhSZWFkT25seTsKKyAgICAgICAg
aWYgKCFkZXB0aFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBQ
QUw6OldlYkdQVTo6U3RlbmNpbFZhbHVlPj4gc3RlbmNpbExvYWRWYWx1ZTsKKyAgICAgICAgZGVj
b2RlciA+PiBzdGVuY2lsTG9hZFZhbHVlOworICAgICAgICBpZiAoIXN0ZW5jaWxMb2FkVmFsdWUp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlN0b3JlT3A+IHN0ZW5jaWxTdG9yZU9wOworICAgICAgICBkZWNvZGVy
ID4+IHN0ZW5jaWxTdG9yZU9wOworICAgICAgICBpZiAoIXN0ZW5jaWxTdG9yZU9wKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+
IHN0ZW5jaWxSZWFkT25seTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE9ubHk7Cisg
ICAgICAgIGlmICghc3RlbmNpbFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnZpZXcpLCBXVEZNb3ZlKCpkZXB0
aExvYWRWYWx1ZSksIFdURk1vdmUoKmRlcHRoU3RvcmVPcCksIFdURk1vdmUoKmRlcHRoUmVhZE9u
bHkpLCBXVEZNb3ZlKCpzdGVuY2lsTG9hZFZhbHVlKSwgV1RGTW92ZSgqc3RlbmNpbFN0b3JlT3Ap
LCBXVEZNb3ZlKCpzdGVuY2lsUmVhZE9ubHkpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAppbmRleCA4N2U4MTBhMmI1ZTczZjU3
YWI5ZDkwZmIzYzcyYmQxZTdhZDIxN2I0Li5iYTRjZWUyMTBjYTAwYmViOWU4Yjg3N2ZmNzk3MjZj
NDVmYmQ4MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaApAQCAtNDAsNiArNDAsNDUgQEAgc3RydWN0IFJl
bmRlclBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBz
dGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50PiBkZXB0aFN0ZW5j
aWxBdHRhY2htZW50OwogICAgIFdlYkdQVUlkZW50aWZpZXIgb2NjbHVzaW9uUXVlcnlTZXQ7CiAg
ICAgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyB0aW1lc3RhbXBXcml0ZXM7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlw
dG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2xvckF0dGFjaG1lbnRzOwor
ICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQ7CisgICAgICAgIGVuY29k
ZXIgPDwgb2NjbHVzaW9uUXVlcnlTZXQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltZXN0YW1wV3Jp
dGVzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFJlbmRlclBhc3NEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERl
c2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOwor
ICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZW5kZXJQYXNzQ29s
b3JBdHRhY2htZW50Pj4gY29sb3JBdHRhY2htZW50czsKKyAgICAgICAgZGVjb2RlciA+PiBjb2xv
ckF0dGFjaG1lbnRzOworICAgICAgICBpZiAoIWNvbG9yQXR0YWNobWVudHMpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudD4+IGRlcHRoU3RlbmNpbEF0dGFj
aG1lbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhTdGVuY2lsQXR0YWNobWVudDsKKyAgICAg
ICAgaWYgKCFkZXB0aFN0ZW5jaWxBdHRhY2htZW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IG9jY2x1
c2lvblF1ZXJ5U2V0OworICAgICAgICBkZWNvZGVyID4+IG9jY2x1c2lvblF1ZXJ5U2V0OworICAg
ICAgICBpZiAoIW9jY2x1c2lvblF1ZXJ5U2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXM+
IHRpbWVzdGFtcFdyaXRlczsKKyAgICAgICAgZGVjb2RlciA+PiB0aW1lc3RhbXBXcml0ZXM7Cisg
ICAgICAgIGlmICghdGltZXN0YW1wV3JpdGVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNl
KSwgV1RGTW92ZSgqY29sb3JBdHRhY2htZW50cyksIFdURk1vdmUoKmRlcHRoU3RlbmNpbEF0dGFj
aG1lbnQpLCBXVEZNb3ZlKCpvY2NsdXNpb25RdWVyeVNldCksIFdURk1vdmUoKnRpbWVzdGFtcFdy
aXRlcykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xh
eW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlv
dXQuaAppbmRleCBhMTcyZWUyNWNlYTE1ZWRlNzNjNTRhMzdmYWY3NWM3N2M1ODI0OGQxLi40ZWUz
MWVlMzZhY2JlOWNjN2Q0ZjhiYTBkNWI2MmRiMzdhNzE0Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgKQEAgLTM3LDYg
KzM3LDM5IEBAIHN0cnVjdCBSZW5kZXJQYXNzTGF5b3V0IDogcHVibGljIE9iamVjdERlc2NyaXB0
b3JCYXNlIHsKICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGNvbG9yRm9y
bWF0czsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBkZXB0
aFN0ZW5jaWxGb3JtYXQ7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBzYW1wbGVDb3VudDsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVj
dERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9yRm9ybWF0
czsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFN0ZW5jaWxGb3JtYXQ7CisgICAgICAgIGVuY29k
ZXIgPDwgc2FtcGxlQ291bnQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0xheW91dD4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNl
PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlw
dG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+PiBjb2xvckZvcm1hdHM7CisgICAgICAgIGRlY29kZXIg
Pj4gY29sb3JGb3JtYXRzOworICAgICAgICBpZiAoIWNvbG9yRm9ybWF0cykKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0Pj4gZGVwdGhTdGVuY2lsRm9ybWF0OworICAg
ICAgICBkZWNvZGVyID4+IGRlcHRoU3RlbmNpbEZvcm1hdDsKKyAgICAgICAgaWYgKCFkZXB0aFN0
ZW5jaWxGb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gc2FtcGxlQ291bnQ7CisgICAgICAg
IGRlY29kZXIgPj4gc2FtcGxlQ291bnQ7CisgICAgICAgIGlmICghc2FtcGxlQ291bnQpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb2xvckZvcm1hdHMpLCBXVEZNb3Zl
KCpkZXB0aFN0ZW5jaWxGb3JtYXQpLCBXVEZNb3ZlKCpzYW1wbGVDb3VudCkgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0
ZXMuaAppbmRleCA4YjFlYmE3NDY1ZjE3NjU5ZjgwYzhhMTIxZTJhMWVmOGVjYTE1OWQ0Li44Yjky
NjNhN2M0ODBkMDgzMWY1NDQ5OTZmZWUxMWIyNzA0ZTRlYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
V3JpdGVzLmgKQEAgLTM3LDYgKzM3LDMzIEBAIHN0cnVjdCBSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGUgewogICAgIFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQ7CiAgICAgUEFMOjpXZWJHUFU6OlNp
emUzMiBxdWVyeUluZGV4OwogICAgIFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wTG9j
YXRpb24gbG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVy
eVNldDsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVyeUluZGV4OworICAgICAgICBlbmNvZGVyIDw8
IGxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IHF1
ZXJ5U2V0OworICAgICAgICBkZWNvZGVyID4+IHF1ZXJ5U2V0OworICAgICAgICBpZiAoIXF1ZXJ5
U2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+IHF1ZXJ5SW5kZXg7CisgICAgICAgIGRlY29kZXIg
Pj4gcXVlcnlJbmRleDsKKyAgICAgICAgaWYgKCFxdWVyeUluZGV4KQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpS
ZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24+IGxvY2F0aW9uOworICAgICAgICBkZWNvZGVyID4+
IGxvY2F0aW9uOworICAgICAgICBpZiAoIWxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnF1ZXJ5U2V0KSwgV1RG
TW92ZSgqcXVlcnlJbmRleCksIFdURk1vdmUoKmxvY2F0aW9uKSB9IH07CisgICAgfQogfTsKIAog
dXNpbmcgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IDlhMjcxYzczZDUzNTE4M2Iw
ODYxNmMzYjY3Mjg2Mjg1M2ZkNmZjOGQuLjZjMmVmNzMwOTJhYTI0Y2FmM2Q1OTQxN2I0Y2IwNjFh
OTkyZWYxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTQxLDYgKzQxLDUxIEBAIHN0
cnVjdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZSB7CiAgICAgc3RkOjpvcHRpb25hbDxEZXB0aFN0ZW5jaWxTdGF0ZT4gZGVwdGhTdGVuY2ls
OwogICAgIHN0ZDo6b3B0aW9uYWw8TXVsdGlzYW1wbGVTdGF0ZT4gbXVsdGlzYW1wbGU7CiAgICAg
c3RkOjpvcHRpb25hbDxGcmFnbWVudFN0YXRlPiBmcmFnbWVudDsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgewor
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJh
c2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgdmVydGV4OworICAgICAgICBlbmNvZGVy
IDw8IHByaW1pdGl2ZTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aFN0ZW5jaWw7CisgICAgICAg
IGVuY29kZXIgPDwgbXVsdGlzYW1wbGU7CisgICAgICAgIGVuY29kZXIgPDwgZnJhZ21lbnQ7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gcGlwZWxpbmVE
ZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBwaXBlbGluZURlc2NyaXB0b3JCYXNl
OworICAgICAgICBpZiAoIXBpcGVsaW5lRGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVydGV4U3RhdGU+IHZl
cnRleDsKKyAgICAgICAgZGVjb2RlciA+PiB2ZXJ0ZXg7CisgICAgICAgIGlmICghdmVydGV4KQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8UHJpbWl0aXZlU3RhdGU+PiBwcmltaXRpdmU7CisgICAgICAgIGRlY29k
ZXIgPj4gcHJpbWl0aXZlOworICAgICAgICBpZiAoIXByaW1pdGl2ZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFs
PERlcHRoU3RlbmNpbFN0YXRlPj4gZGVwdGhTdGVuY2lsOworICAgICAgICBkZWNvZGVyID4+IGRl
cHRoU3RlbmNpbDsKKyAgICAgICAgaWYgKCFkZXB0aFN0ZW5jaWwpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxN
dWx0aXNhbXBsZVN0YXRlPj4gbXVsdGlzYW1wbGU7CisgICAgICAgIGRlY29kZXIgPj4gbXVsdGlz
YW1wbGU7CisgICAgICAgIGlmICghbXVsdGlzYW1wbGUpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxGcmFnbWVu
dFN0YXRlPj4gZnJhZ21lbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZnJhZ21lbnQ7CisgICAgICAg
IGlmICghZnJhZ21lbnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcGlwZWxpbmVEZXNjcmlwdG9yQmFzZSksIFdURk1vdmUo
KnZlcnRleCksIFdURk1vdmUoKnByaW1pdGl2ZSksIFdURk1vdmUoKmRlcHRoU3RlbmNpbCksIFdU
Rk1vdmUoKm11bHRpc2FtcGxlKSwgV1RGTW92ZSgqZnJhZ21lbnQpIH0gfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCmluZGV4IGE5
MTc4ZDYxNzcyMzczNjczOGZmMGQ2MGZkMzUwZWYzMWQzZmNlYzkuLjA2YjAzMWM3MTJlZGU4N2Y1
ODU5YTNkNTNiM2I0NmVkNTkxMTIzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgKQEAgLTMzLDYgKzMz
LDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgUmVxdWVzdEFkYXB0ZXJP
cHRpb25zIHsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U+
IHBvd2VyUHJlZmVyZW5jZTsKICAgICBib29sIGZvcmNlRmFsbGJhY2tBZGFwdGVyOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgcG93ZXJQcmVmZXJlbmNlOworICAgICAgICBl
bmNvZGVyIDw8IGZvcmNlRmFsbGJhY2tBZGFwdGVyOworICAgIH0KKworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlcXVlc3RBZGFwdGVyT3B0aW9ucz4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZT4+IHBvd2VyUHJlZmVyZW5j
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBwb3dlclByZWZlcmVuY2U7CisgICAgICAgIGlmICghcG93
ZXJQcmVmZXJlbmNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGZvcmNlRmFsbGJhY2tBZGFwdGVyOworICAgICAgICBkZWNv
ZGVyID4+IGZvcmNlRmFsbGJhY2tBZGFwdGVyOworICAgICAgICBpZiAoIWZvcmNlRmFsbGJhY2tB
ZGFwdGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKnBvd2VyUHJlZmVyZW5jZSksIFdURk1vdmUoKmZvcmNlRmFsbGJhY2tB
ZGFwdGVyKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmlu
ZGluZ0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJC
aW5kaW5nTGF5b3V0LmgKaW5kZXggOTBlYTk4N2ExMTg2M2UzYzExN2QyNjk1YzUzNzZlNWMwNDRm
NDI0Zi4uOTU5MjFlYTU4NzQ1NTNkOGZiZjBjZDVhNTNiNGQwMDUwMDZlMzJmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5n
TGF5b3V0LmgKQEAgLTMxLDYgKzMxLDIxIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAK
IHN0cnVjdCBTYW1wbGVyQmluZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJC
aW5kaW5nVHlwZSB0eXBlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdHlw
ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxTYW1wbGVyQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU+
IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1v
dmUoKnR5cGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRl
c2NyaXB0b3IuaAppbmRleCBkN2M3NDdhOTQ3NTZjY2I0MDNkZjNmZTU1ZjFiNTM4ZjU3MjE4MTIw
Li5iOGQ4NTk0ODcxNDJiY2NmYWM1MTE1ZjliZmFkOWUzOWNiMGM1M2FmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaApA
QCAtNDUsNiArNDUsODEgQEAgc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVj
dERlc2NyaXB0b3JCYXNlIHsKICAgICBmbG9hdCBsb2RNYXhDbGFtcDsKICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24+IGNvbXBhcmU7CiAgICAgdWludDE2X3Qg
bWF4QW5pc290cm9weTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNv
ZGVyIDw8IGFkZHJlc3NNb2RlVTsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRyZXNzTW9kZVY7Cisg
ICAgICAgIGVuY29kZXIgPDwgYWRkcmVzc01vZGVXOworICAgICAgICBlbmNvZGVyIDw8IG1hZ0Zp
bHRlcjsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5GaWx0ZXI7CisgICAgICAgIGVuY29kZXIgPDwg
bWlwbWFwRmlsdGVyOworICAgICAgICBlbmNvZGVyIDw8IGxvZE1pbkNsYW1wOworICAgICAgICBl
bmNvZGVyIDw8IGxvZE1heENsYW1wOworICAgICAgICBlbmNvZGVyIDw8IGNvbXBhcmU7CisgICAg
ICAgIGVuY29kZXIgPDwgbWF4QW5pc290cm9weTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTYW1wbGVyRGVzY3JpcHRvcj4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERl
c2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBv
YmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU+IGFkZHJlc3NNb2RlVTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBhZGRyZXNzTW9kZVU7CisgICAgICAgIGlmICghYWRkcmVzc01vZGVVKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpBZGRyZXNzTW9kZT4gYWRkcmVzc01vZGVWOworICAgICAgICBkZWNvZGVyID4+IGFkZHJl
c3NNb2RlVjsKKyAgICAgICAgaWYgKCFhZGRyZXNzTW9kZVYpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkFkZHJl
c3NNb2RlPiBhZGRyZXNzTW9kZVc7CisgICAgICAgIGRlY29kZXIgPj4gYWRkcmVzc01vZGVXOwor
ICAgICAgICBpZiAoIWFkZHJlc3NNb2RlVykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RmlsdGVyTW9kZT4gbWFn
RmlsdGVyOworICAgICAgICBkZWNvZGVyID4+IG1hZ0ZpbHRlcjsKKyAgICAgICAgaWYgKCFtYWdG
aWx0ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkZpbHRlck1vZGU+IG1pbkZpbHRlcjsKKyAgICAgICAgZGVj
b2RlciA+PiBtaW5GaWx0ZXI7CisgICAgICAgIGlmICghbWluRmlsdGVyKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpGaWx0ZXJNb2RlPiBtaXBtYXBGaWx0ZXI7CisgICAgICAgIGRlY29kZXIgPj4gbWlwbWFwRmls
dGVyOworICAgICAgICBpZiAoIW1pcG1hcEZpbHRlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gbG9kTWluQ2xhbXA7Cisg
ICAgICAgIGRlY29kZXIgPj4gbG9kTWluQ2xhbXA7CisgICAgICAgIGlmICghbG9kTWluQ2xhbXAp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8ZmxvYXQ+IGxvZE1heENsYW1wOworICAgICAgICBkZWNvZGVyID4+IGxvZE1heENsYW1wOwor
ICAgICAgICBpZiAoIWxvZE1heENsYW1wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNv
bXBhcmVGdW5jdGlvbj4+IGNvbXBhcmU7CisgICAgICAgIGRlY29kZXIgPj4gY29tcGFyZTsKKyAg
ICAgICAgaWYgKCFjb21wYXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiBtYXhBbmlzb3Ryb3B5OworICAgICAgICBk
ZWNvZGVyID4+IG1heEFuaXNvdHJvcHk7CisgICAgICAgIGlmICghbWF4QW5pc290cm9weSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmFkZHJlc3NNb2RlVSksIFdURk1v
dmUoKmFkZHJlc3NNb2RlViksIFdURk1vdmUoKmFkZHJlc3NNb2RlVyksIFdURk1vdmUoKm1hZ0Zp
bHRlciksIFdURk1vdmUoKm1pbkZpbHRlciksIFdURk1vdmUoKm1pcG1hcEZpbHRlciksIFdURk1v
dmUoKmxvZE1pbkNsYW1wKSwgV1RGTW92ZSgqbG9kTWF4Q2xhbXApLCBXVEZNb3ZlKCpjb21wYXJl
KSwgV1RGTW92ZSgqbWF4QW5pc290cm9weSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAppbmRleCA3YzFkYWZmY2JmZjVl
Mjg0ZjBkOTc5MmYyNDg2NWM4OGNlNTAyZmJkLi5kZDc3ODZjZThiOTY2MTE2ZDI2OWEyNTEwYTVm
MmY4MjI5YzE3MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiBzdHJ1Y3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciA6
IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgU3RyaW5nIGNvZGU7CiAgICAgLy8g
SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gc291cmNlTWFwOworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2Um
PigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgY29kZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBk
ZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2Ny
aXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gY29kZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb2RlOworICAg
ICAgICBpZiAoIWNvZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpj
b2RlKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oCmluZGV4IDY1YTZiM2FhOWE1NDdmMzI2NjAyNDAwMjM5MDYxODFmYzE1YWVjMzEuLmU0MDFi
NjRjZDM1MmZmYWQwZjZhNTQ4NzU3MTMyNTk3MmQzODI0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaApAQCAtMzUsNiAr
MzUsMzkgQEAgc3RydWN0IFN0ZW5jaWxGYWNlU3RhdGUgewogICAgIFBBTDo6V2ViR1BVOjpTdGVu
Y2lsT3BlcmF0aW9uIGZhaWxPcDsKICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbiBk
ZXB0aEZhaWxPcDsKICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbiBwYXNzT3A7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjb21wYXJlOworICAgICAgICBlbmNv
ZGVyIDw8IGZhaWxPcDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEZhaWxPcDsKKyAgICAgICAg
ZW5jb2RlciA8PCBwYXNzT3A7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RlbmNpbEZhY2VTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wYXJl
RnVuY3Rpb24+IGNvbXBhcmU7CisgICAgICAgIGRlY29kZXIgPj4gY29tcGFyZTsKKyAgICAgICAg
aWYgKCFjb21wYXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uPiBmYWlsT3A7Cisg
ICAgICAgIGRlY29kZXIgPj4gZmFpbE9wOworICAgICAgICBpZiAoIWZhaWxPcCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbj4gZGVwdGhGYWlsT3A7CisgICAgICAgIGRlY29kZXIgPj4g
ZGVwdGhGYWlsT3A7CisgICAgICAgIGlmICghZGVwdGhGYWlsT3ApCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0
ZW5jaWxPcGVyYXRpb24+IHBhc3NPcDsKKyAgICAgICAgZGVjb2RlciA+PiBwYXNzT3A7CisgICAg
ICAgIGlmICghcGFzc09wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvbXBhcmUpLCBXVEZNb3ZlKCpmYWlsT3ApLCBXVEZN
b3ZlKCpkZXB0aEZhaWxPcCksIFdURk1vdmUoKnBhc3NPcCkgfSB9OworICAgIH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgK
aW5kZXggZjMxMDMwNjFiMDZmZTA2MmNlZWMwMzExZDIwZTAzNTI5NjljMDhmYi4uYzI1YjFhZjM0
MWFhYTA3MDE1OTYwMDU1OGUzY2I2NjcwMDE4M2E5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xh
eW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzIGFjY2VzczsKICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdCBmb3JtYXQ7CiAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgZW5jb2RlciA8PCBhY2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgZm9ybWF0OworICAgICAg
ICBlbmNvZGVyIDw8IHZpZXdEaW1lbnNpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNjZXNzPiBhY2Nlc3M7CisgICAgICAgIGRlY29k
ZXIgPj4gYWNjZXNzOworICAgICAgICBpZiAoIWFjY2VzcykKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdD4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYg
KCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uPiB2aWV3RGltZW5z
aW9uOworICAgICAgICBkZWNvZGVyID4+IHZpZXdEaW1lbnNpb247CisgICAgICAgIGlmICghdmll
d0RpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCphY2Nlc3MpLCBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCp2
aWV3RGltZW5zaW9uKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBv
cnRlZEZlYXR1cmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBmMzg5MDNlMDcyNDMyMzkxODM2YzI2NjMzM2Zj
NTk1YmRjNzYyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0
IFN1cHBvcnRlZEZlYXR1cmVzIHsKKyAgICBWZWN0b3I8U3RyaW5nPiBmZWF0dXJlczsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZlYXR1cmVzOworICAgIH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZEZlYXR1
cmVzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+IGZlYXR1cmVzOworICAgICAgICBkZWNvZGVyID4+IGZlYXR1cmVz
OworICAgICAgICBpZiAoIWZlYXR1cmVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZlYXR1cmVzKSB9IH07CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWNh
MDNlZDRmZWUzNTE2Njg1OTM3YmNlMWQ2ZGZkMmEyYzk2ZDUwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oCkBAIC0w
LDAgKzEsMjUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjc3Rk
aW50PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdHJ1Y3QgU3VwcG9ydGVkTGlt
aXRzIHsKKyAgICB1aW50MzJfdCBtYXhUZXh0dXJlRGltZW5zaW9uMUQgeyAwIH07CisgICAgdWlu
dDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjJEIHsgMCB9OworICAgIHVpbnQzMl90IG1heFRleHR1
cmVEaW1lbnNpb24zRCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhUZXh0dXJlQXJyYXlMYXllcnMg
eyAwIH07CisgICAgdWludDMyX3QgbWF4QmluZEdyb3VwcyB7IDAgfTsKKyAgICB1aW50MzJfdCBt
YXhEeW5hbWljVW5pZm9ybUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCB7IDAgfTsKKyAgICB1aW50
MzJfdCBtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCB7IDAgfTsKKyAg
ICB1aW50MzJfdCBtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1
aW50MzJfdCBtYXhTYW1wbGVyc1BlclNoYWRlclN0YWdlIHsgMCB9OworICAgIHVpbnQzMl90IG1h
eFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2UgeyAwIH07CisgICAgdWludDMyX3QgbWF4U3Rv
cmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UgeyAwIH07CisgICAgdWludDMyX3QgbWF4VW5pZm9y
bUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50NjRfdCBtYXhVbmlmb3JtQnVm
ZmVyQmluZGluZ1NpemUgeyAwIH07CisgICAgdWludDY0X3QgbWF4U3RvcmFnZUJ1ZmZlckJpbmRp
bmdTaXplIHsgMCB9OworICAgIHVpbnQzMl90IG1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1l
bnQgeyAwIH07CisgICAgdWludDMyX3QgbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCB7
IDAgfTsKKyAgICB1aW50MzJfdCBtYXhWZXJ0ZXhCdWZmZXJzIHsgMCB9OworICAgIHVpbnQzMl90
IG1heFZlcnRleEF0dHJpYnV0ZXMgeyAwIH07CisgICAgdWludDMyX3QgbWF4VmVydGV4QnVmZmVy
QXJyYXlTdHJpZGUgeyAwIH07CisgICAgdWludDMyX3QgbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBv
bmVudHMgeyAwIH07CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXpl
IHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1dGVJbnZvY2F0aW9uc1Blcldvcmtncm91cCB7
IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVggeyAwIH07CisgICAg
dWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVZIHsgMCB9OworICAgIHVpbnQzMl90IG1h
eENvbXB1dGVXb3JrZ3JvdXBTaXplWiB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29y
a2dyb3Vwc1BlckRpbWVuc2lvbiB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IG1heFRleHR1cmVEaW1lbnNpb24xRDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhUZXh0
dXJlRGltZW5zaW9uMkQ7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZURpbWVuc2lvbjNE
OworICAgICAgICBlbmNvZGVyIDw8IG1heFRleHR1cmVBcnJheUxheWVyczsKKyAgICAgICAgZW5j
b2RlciA8PCBtYXhCaW5kR3JvdXBzOworICAgICAgICBlbmNvZGVyIDw8IG1heER5bmFtaWNVbmlm
b3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBlbmNvZGVyIDw8IG1heER5bmFt
aWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBlbmNvZGVyIDw8IG1h
eFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFNh
bXBsZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWF4U3RvcmFnZUJ1ZmZl
cnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9yYWdlVGV4dHVyZXNQ
ZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhVbmlmb3JtQnVmZmVyc1BlclNo
YWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemU7CisgICAg
ICAgIGVuY29kZXIgPDwgbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAgICAgICAg
ZW5jb2RlciA8PCBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50OworICAgICAgICBlbmNv
ZGVyIDw8IG1heFZlcnRleEJ1ZmZlcnM7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VmVydGV4QXR0
cmlidXRlczsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZTsK
KyAgICAgICAgZW5jb2RlciA8PCBtYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9uZW50czsKKyAgICAg
ICAgZW5jb2RlciA8PCBtYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemU7CisgICAgICAgIGVu
Y29kZXIgPDwgbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwOworICAgICAgICBlbmNv
ZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhD
b21wdXRlV29ya2dyb3VwU2l6ZVk7CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtn
cm91cFNpemVaOworICAgICAgICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGlt
ZW5zaW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFN1cHBvcnRlZExpbWl0cz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0dXJlRGltZW5zaW9uMUQ7
CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZURpbWVuc2lvbjFEOworICAgICAgICBpZiAo
IW1heFRleHR1cmVEaW1lbnNpb24xRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VGV4dHVyZURpbWVuc2lvbjJE
OworICAgICAgICBkZWNvZGVyID4+IG1heFRleHR1cmVEaW1lbnNpb24yRDsKKyAgICAgICAgaWYg
KCFtYXhUZXh0dXJlRGltZW5zaW9uMkQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1cmVEaW1lbnNpb24z
RDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlRGltZW5zaW9uM0Q7CisgICAgICAgIGlm
ICghbWF4VGV4dHVyZURpbWVuc2lvbjNEKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0dXJlQXJyYXlMYXll
cnM7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZUFycmF5TGF5ZXJzOworICAgICAgICBp
ZiAoIW1heFRleHR1cmVBcnJheUxheWVycykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4QmluZEdyb3VwczsKKyAg
ICAgICAgZGVjb2RlciA+PiBtYXhCaW5kR3JvdXBzOworICAgICAgICBpZiAoIW1heEJpbmRHcm91
cHMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8dWludDMyX3Q+IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0
OworICAgICAgICBkZWNvZGVyID4+IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5l
TGF5b3V0OworICAgICAgICBpZiAoIW1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5l
TGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxh
eW91dDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBl
bGluZUxheW91dDsKKyAgICAgICAgaWYgKCFtYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBl
bGluZUxheW91dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7
CisgICAgICAgIGRlY29kZXIgPj4gbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7Cisg
ICAgICAgIGlmICghbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2UpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+
IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4U2FtcGxl
cnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhTYW1wbGVyc1BlclNoYWRlclN0YWdl
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPHVpbnQzMl90PiBtYXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBk
ZWNvZGVyID4+IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGlmICgh
bWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4U3RvcmFnZVRl
eHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZVRleHR1
cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGlmICghbWF4U3RvcmFnZVRleHR1cmVzUGVyU2hh
ZGVyU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFVuaWZvcm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2U7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAg
ICAgaWYgKCFtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtYXhV
bmlmb3JtQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VW5pZm9ybUJ1
ZmZlckJpbmRpbmdTaXplOworICAgICAgICBpZiAoIW1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6
ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAgICBkZWNv
ZGVyID4+IG1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZTsKKyAgICAgICAgaWYgKCFtYXhTdG9y
YWdlQnVmZmVyQmluZGluZ1NpemUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1pblVuaWZvcm1CdWZmZXJPZmZzZXRB
bGlnbm1lbnQ7CisgICAgICAgIGRlY29kZXIgPj4gbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdu
bWVudDsKKyAgICAgICAgaWYgKCFtaW5Vbmlmb3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50KQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQzMl90PiBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50OworICAgICAgICBkZWNvZGVy
ID4+IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CisgICAgICAgIGlmICghbWluU3Rv
cmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VmVydGV4QnVmZmVyczsK
KyAgICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhCdWZmZXJzOworICAgICAgICBpZiAoIW1heFZl
cnRleEJ1ZmZlcnMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFZlcnRleEF0dHJpYnV0ZXM7CisgICAgICAgIGRl
Y29kZXIgPj4gbWF4VmVydGV4QXR0cmlidXRlczsKKyAgICAgICAgaWYgKCFtYXhWZXJ0ZXhBdHRy
aWJ1dGVzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBtYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZTsKKyAgICAgICAgaWYgKCFtYXhW
ZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4SW50ZXJTdGFnZVNoYWRlckNv
bXBvbmVudHM7CisgICAgICAgIGRlY29kZXIgPj4gbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVu
dHM7CisgICAgICAgIGlmICghbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMy
X3Q+IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBt
YXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemU7CisgICAgICAgIGlmICghbWF4Q29tcHV0ZVdv
cmtncm91cFN0b3JhZ2VTaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlSW52b2NhdGlvbnNQZXJX
b3JrZ3JvdXA7CisgICAgICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29y
a2dyb3VwOworICAgICAgICBpZiAoIW1heENvbXB1dGVJbnZvY2F0aW9uc1Blcldvcmtncm91cCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBkZWNvZGVyID4+
IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWDsKKyAgICAgICAgaWYgKCFtYXhDb21wdXRlV29ya2dy
b3VwU2l6ZVgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAg
ZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVk7CisgICAgICAgIGlmICghbWF4Q29t
cHV0ZVdvcmtncm91cFNpemVZKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7
CisgICAgICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaOworICAgICAgICBp
ZiAoIW1heENvbXB1dGVXb3JrZ3JvdXBTaXplWikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtn
cm91cHNQZXJEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91
cHNQZXJEaW1lbnNpb247CisgICAgICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1l
bnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVy
biB7IHsKKyAgICAgICAgICAgICptYXhUZXh0dXJlRGltZW5zaW9uMUQsCisgICAgICAgICAgICAq
bWF4VGV4dHVyZURpbWVuc2lvbjJELAorICAgICAgICAgICAgKm1heFRleHR1cmVEaW1lbnNpb24z
RCwKKyAgICAgICAgICAgICptYXhUZXh0dXJlQXJyYXlMYXllcnMsCisgICAgICAgICAgICAqbWF4
QmluZEdyb3VwcywKKyAgICAgICAgICAgICptYXhEeW5hbWljVW5pZm9ybUJ1ZmZlcnNQZXJQaXBl
bGluZUxheW91dCwKKyAgICAgICAgICAgICptYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBl
bGluZUxheW91dCwKKyAgICAgICAgICAgICptYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFn
ZSwKKyAgICAgICAgICAgICptYXhTYW1wbGVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICAgICAg
Km1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgICAgICAqbWF4U3RvcmFn
ZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgICAgICAqbWF4VW5pZm9ybUJ1ZmZlcnNQ
ZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhVbmlmb3JtQnVmZmVyQmluZGluZ1NpemUs
CisgICAgICAgICAgICAqbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplLAorICAgICAgICAgICAg
Km1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQsCisgICAgICAgICAgICAqbWluU3RvcmFn
ZUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAgICAgICptYXhWZXJ0ZXhCdWZmZXJzLAor
ICAgICAgICAgICAgKm1heFZlcnRleEF0dHJpYnV0ZXMsCisgICAgICAgICAgICAqbWF4VmVydGV4
QnVmZmVyQXJyYXlTdHJpZGUsCisgICAgICAgICAgICAqbWF4SW50ZXJTdGFnZVNoYWRlckNvbXBv
bmVudHMsCisgICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplLAorICAg
ICAgICAgICAgKm1heENvbXB1dGVJbnZvY2F0aW9uc1Blcldvcmtncm91cCwKKyAgICAgICAgICAg
ICptYXhDb21wdXRlV29ya2dyb3VwU2l6ZVgsCisgICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtn
cm91cFNpemVZLAorICAgICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWiwKKyAgICAg
ICAgICAgICptYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbiwKKyAgICAgICAgfSB9Owor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5o
CmluZGV4IDA2OTI2NDRlYjA5YWZlNWJkODcyOTdkYTljZjBmYjFjZTgyMWY4ZmUuLmEyOWI5Y2Yy
ZDc4ZTkyNWQwYmEwM2RjNjIzOGFlNzQ5ZjMwODBmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0z
NCw2ICszNCwzMyBAQCBzdHJ1Y3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQgewogICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlU2FtcGxlVHlwZSBzYW1wbGVUeXBlOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlVmlld0RpbWVuc2lvbiB2aWV3RGltZW5zaW9uOwogICAgIGJvb2wgbXVsdGlzYW1wbGVkOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlVHlwZTsKKyAgICAgICAg
ZW5jb2RlciA8PCB2aWV3RGltZW5zaW9uOworICAgICAgICBlbmNvZGVyIDw8IG11bHRpc2FtcGxl
ZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxUZXh0dXJlQmluZGluZ0xheW91dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlwZT4g
c2FtcGxlVHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVUeXBlOworICAgICAgICBpZiAo
IXNhbXBsZVR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uPiB2aWV3RGlt
ZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IHZpZXdEaW1lbnNpb247CisgICAgICAgIGlmICgh
dmlld0RpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxib29sPiBtdWx0aXNhbXBsZWQ7CisgICAgICAgIGRlY29kZXIgPj4g
bXVsdGlzYW1wbGVkOworICAgICAgICBpZiAoIW11bHRpc2FtcGxlZCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpzYW1wbGVU
eXBlKSwgV1RGTW92ZSgqdmlld0RpbWVuc2lvbiksIFdURk1vdmUoKm11bHRpc2FtcGxlZCkgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCmlu
ZGV4IDMxYTA2NmU2NTA0NWE1Zjk3NWRiMTRjNmU3YjEwYTVmZjE3Yjk5MWIuLjMzMjIxN2JhNjEy
NTJjMTQ4MDdiZTY0ODgwMjllMzVkOGVjNTI1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCkBAIC00MSw2ICs0MSw1
NyBAQCBzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJh
c2UgewogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uIGRpbWVuc2lvbjsKICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdCBmb3JtYXQ7CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVVc2FnZUZsYWdzIHVzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAg
IGVuY29kZXIgPDwgc2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtaXBMZXZlbENvdW50OworICAg
ICAgICBlbmNvZGVyIDw8IHNhbXBsZUNvdW50OworICAgICAgICBlbmNvZGVyIDw8IGRpbWVuc2lv
bjsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgdXNhZ2U7
CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8VGV4dHVyZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAg
IGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXh0ZW50M0Q+IHNpemU7CisgICAgICAgIGRl
Y29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZT4gbWlwTGV2ZWxDb3VudDsKKyAgICAgICAgZGVjb2RlciA+PiBtaXBMZXZlbENv
dW50OworICAgICAgICBpZiAoIW1pcExldmVsQ291bnQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4g
c2FtcGxlQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlQ291bnQ7CisgICAgICAgIGlm
ICghc2FtcGxlQ291bnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24+IGRpbWVuc2lv
bjsKKyAgICAgICAgZGVjb2RlciA+PiBkaW1lbnNpb247CisgICAgICAgIGlmICghZGltZW5zaW9u
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIg
Pj4gZm9ybWF0OworICAgICAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVVz
YWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBpZiAo
IXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqc2l6ZSksIFdU
Rk1vdmUoKm1pcExldmVsQ291bnQpLCBXVEZNb3ZlKCpzYW1wbGVDb3VudCksIFdURk1vdmUoKmRp
bWVuc2lvbiksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKnVzYWdlKSB9IH07CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaAppbmRl
eCBmZmE1NmU1M2JiYTA5MjA5YWJiZDVmMWU0OWMyNmFkYzIzZTU3NGVhLi5hODE3NDM1NWUxZDY5
ZjMzNjgyOWY2NDIzZjAzMTIyZTk5ZmU4OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oCkBAIC00Miw2
ICs0Miw2MyBAQCBzdHJ1Y3QgVGV4dHVyZVZpZXdEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERl
c2NyaXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29v
cmRpbmF0ZT4gbWlwTGV2ZWxDb3VudDsKICAgICBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5h
dGUgYmFzZUFycmF5TGF5ZXI7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdl
ckNvb3JkaW5hdGU+IGFycmF5TGF5ZXJDb3VudDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMp
OworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBkaW1lbnNp
b247CisgICAgICAgIGVuY29kZXIgPDwgYXNwZWN0OworICAgICAgICBlbmNvZGVyIDw8IGJhc2VN
aXBMZXZlbDsKKyAgICAgICAgZW5jb2RlciA8PCBtaXBMZXZlbENvdW50OworICAgICAgICBlbmNv
ZGVyIDw8IGJhc2VBcnJheUxheWVyOworICAgICAgICBlbmNvZGVyIDw8IGFycmF5TGF5ZXJDb3Vu
dDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxUZXh0dXJlVmlld0Rlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7Cisg
ICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6VGV4dHVyZUZvcm1hdD4+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7
CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3RGltZW5zaW9uPj4gZGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IGRpbWVuc2lv
bjsKKyAgICAgICAgaWYgKCFkaW1lbnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q+
IGFzcGVjdDsKKyAgICAgICAgZGVjb2RlciA+PiBhc3BlY3Q7CisgICAgICAgIGlmICghYXNwZWN0
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYmFzZU1pcExldmVsOworICAgICAg
ICBkZWNvZGVyID4+IGJhc2VNaXBMZXZlbDsKKyAgICAgICAgaWYgKCFiYXNlTWlwTGV2ZWwpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+PiBtaXBMZXZlbENv
dW50OworICAgICAgICBkZWNvZGVyID4+IG1pcExldmVsQ291bnQ7CisgICAgICAgIGlmICghbWlw
TGV2ZWxDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGJhc2VBcnJheUxh
eWVyOworICAgICAgICBkZWNvZGVyID4+IGJhc2VBcnJheUxheWVyOworICAgICAgICBpZiAoIWJh
c2VBcnJheUxheWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGlu
YXRlPj4gYXJyYXlMYXllckNvdW50OworICAgICAgICBkZWNvZGVyID4+IGFycmF5TGF5ZXJDb3Vu
dDsKKyAgICAgICAgaWYgKCFhcnJheUxheWVyQ291bnQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRv
ckJhc2UpLCBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpkaW1lbnNpb24pLCBXVEZNb3ZlKCph
c3BlY3QpLCBXVEZNb3ZlKCpiYXNlTWlwTGV2ZWwpLCBXVEZNb3ZlKCptaXBMZXZlbENvdW50KSwg
V1RGTW92ZSgqYmFzZUFycmF5TGF5ZXIpLCBXVEZNb3ZlKCphcnJheUxheWVyQ291bnQpIH0gfTsK
KyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQyNDgxMDJkZjZmNDBmYWRhZjhhYWYwNjE5YzU4MjE0NWE1OTZmMTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9y
LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisK
K3N0cnVjdCBWYWxpZGF0aW9uRXJyb3IgeworICAgIFN0cmluZyBtZXNzYWdlOworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVzc2FnZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYWxpZGF0aW9uRXJyb3I+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IG1lc3NhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKKyAgICAgICAgaWYgKCFt
ZXNzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1
cm4geyB7IFdURk1vdmUoKm1lc3NhZ2UpIH0gfTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVZlcnRleEF0dHJpYnV0ZS5oCmluZGV4IGExYjUzYzk3Yzc5YjU3OTNjOTdlNjFmYjNhYTdi
ZDYzYmUzNjlhNzMuLmY5M2ZiY2Q2MmMxMjg5MDczYzRhOTY3MWZiMmI2NjA2ZGQwZGQzNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmli
dXRlLmgKQEAgLTM1LDYgKzM1LDMzIEBAIHN0cnVjdCBWZXJ0ZXhBdHRyaWJ1dGUgewogICAgIFBB
TDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0OwogCiAgICAgUEFMOjpXZWJHUFU6OkluZGV4MzIgc2hh
ZGVyTG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBmb3JtYXQ7
CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNvZGVyIDw8IHNoYWRlckxv
Y2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFZlcnRleEF0dHJpYnV0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ+IGZvcm1h
dDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7Cisg
ICAgICAgIGlmICghb2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRleDMyPiBzaGFkZXJMb2NhdGlv
bjsKKyAgICAgICAgZGVjb2RlciA+PiBzaGFkZXJMb2NhdGlvbjsKKyAgICAgICAgaWYgKCFzaGFk
ZXJMb2NhdGlvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpvZmZzZXQpLCBXVEZNb3ZlKCpz
aGFkZXJMb2NhdGlvbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVy
dGV4QnVmZmVyTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVy
dGV4QnVmZmVyTGF5b3V0LmgKaW5kZXggMDM3Nzc0YjFiNzE4OWUzNjVlODIzMGIzZmIxNjI4M2M2
ODA3MTQ2Yi4uMjMxMDJkY2RiMzQ0MjRiN2E4MWI1ZGYyMjJmZGNkMDVkMDIzNThlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJM
YXlvdXQuaApAQCAtMzYsNiArMzYsMzMgQEAgc3RydWN0IFZlcnRleEJ1ZmZlckxheW91dCB7CiAg
ICAgUEFMOjpXZWJHUFU6OlNpemU2NCBhcnJheVN0cmlkZTsKICAgICBQQUw6OldlYkdQVTo6VmVy
dGV4U3RlcE1vZGUgc3RlcE1vZGU7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJpYnV0ZT4gYXR0cmli
dXRlczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGFycmF5U3RyaWRlOwor
ICAgICAgICBlbmNvZGVyIDw8IHN0ZXBNb2RlOworICAgICAgICBlbmNvZGVyIDw8IGF0dHJpYnV0
ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8VmVydGV4QnVmZmVyTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gYXJyYXlTdHJpZGU7
CisgICAgICAgIGRlY29kZXIgPj4gYXJyYXlTdHJpZGU7CisgICAgICAgIGlmICghYXJyYXlTdHJp
ZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlPiBzdGVwTW9kZTsKKyAgICAgICAgZGVj
b2RlciA+PiBzdGVwTW9kZTsKKyAgICAgICAgaWYgKCFzdGVwTW9kZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8VmVydGV4
QXR0cmlidXRlPj4gYXR0cmlidXRlczsKKyAgICAgICAgZGVjb2RlciA+PiBhdHRyaWJ1dGVzOwor
ICAgICAgICBpZiAoIWF0dHJpYnV0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYXJyYXlTdHJpZGUpLCBXVEZNb3ZlKCpz
dGVwTW9kZSksIFdURk1vdmUoKmF0dHJpYnV0ZXMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVmVydGV4U3RhdGUuaAppbmRleCA4NDI0NzEzZGRjZDQ5OGY2YjYwMWM0MDgyYzcxOTdl
MWRiZTJiYjU5Li40NmZmOGM3NTQzZWMwMmFhMjFkNmRlZDdhZDllMWYxNDgyMDExZTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaApAQCAt
MzQsNiArMzQsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IFZlcnRl
eFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBWZWN0b3I8c3RkOjpvcHRp
b25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+PiBidWZmZXJzOworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUHJvZ3JhbW1hYmxlU3RhZ2UmPigqdGhp
cyk7CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVyczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZXJ0ZXhTdGF0ZT4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJs
ZVN0YWdlPiBwcm9ncmFtbWFibGVTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBwcm9ncmFtbWFi
bGVTdGFnZTsKKyAgICAgICAgaWYgKCFwcm9ncmFtbWFibGVTdGFnZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8c3RkOjpv
cHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+Pj4gYnVmZmVyczsKKyAgICAgICAgZGVjb2RlciA+
PiBidWZmZXJzOworICAgICAgICBpZiAoIWJ1ZmZlcnMpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcHJvZ3JhbW1hYmxlU3Rh
Z2UpLCBXVEZNb3ZlKCpidWZmZXJzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDY3NmRhZGRhYzg4MzE5NmM2YTM0NGE5ZmIx
YTZkNGNkNDFhZjhjYmIuLjkxZDFlYWI4OTA1MTg0ZjhlMDIxM2QzOWFlOGRkYjU0MmMzYzhiY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dApAQCAtMzEsNiArMzEsMjkgQEAgR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTC5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2Vz
UmVxdWVzdC5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvU2NvcGVkV2ViR0xSZW5kZXJpbmdSZXNv
dXJjZXNSZXF1ZXN0LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRl
ci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAKK0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5jcHAKK0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZURldmljZS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFs
VGV4dHVyZS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKK0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcAorR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQuY3BwCitHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVJlbmRlckJ1bmRsZS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXIuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJl
bmRlclBpcGVsaW5lLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxl
ci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5jcHAK
K0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuY3BwCitHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmNwcApAQCAtNzYwLDMgKzc4MywyNiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFdlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKKworUmVtb3RlQWRhcHRlck1l
c3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZUJpbmRHcm91cExheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUJ1ZmZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKK1JlbW90ZUNvbW1hbmRCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitS
ZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUNvbXB1dGVQaXBlbGluZU1lc3NhZ2VS
ZWNlaXZlci5jcHAKK1JlbW90ZURldmljZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUV4dGVy
bmFsVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUdQVU1lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZVBpcGVsaW5lTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUXVlcnlT
ZXRNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVRdWV1ZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZVJlbmRlckJ1bmRsZU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVt
b3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VS
ZWNlaXZlci5jcHAKK1JlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVUZXh0
dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVW5p
ZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDg2MDhkMmIxNzBiYmI1ZDNkNjdmMzA3N2FhODRi
ZTcxMDllZTNiNTcuLmJkOTcyYTJiZWMyNWJlMjY3Zjk1ODFiZDBhZWMyMGZhZWRmNmI2NTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAt
NCw2ICs0LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMC1t
bS5tbQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAwLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3Vy
Y2VzL1VuaWZpZWRTb3VyY2UxMDEuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMi5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTAzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMS1tbS5tbQogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTItbW0ubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdkYTY1NzRmOGQ2NDM4
NDNkOTA0MmQzMTQ0NjUzNjlkYzE4NThkN2IuLjZlZmVjYmNlZTQ2NTkyZTc1OGUwZTg4Y2Y2ZTkx
ODFjZTkyOTk5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMzgwLDYgKzM4MCw5IEBACiAJCTFDMEExOTVDMUM5MTZFMUIwMEZFMEVC
QiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5U2NyaXB0U291cmNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzBBMTk1QjFDOTE2RTFCMDBGRTBF
QkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eVNjcmlwdFNvdXJjZS5oICovOyB9OwogCQkx
QzIwOTM2MDIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzIwOTM1RTIyMzE4Q0IwMDAw
MjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwogCQkxQzIxODQwMjIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRy
aWJ1dGVkU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUMyMTg0MDEyMjMzODcyODAwQkFDNzAwIC8qIE5TQXR0cmlidXRlZFN0cmlu
Z1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkxQzU2NTU3RjI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzU2NTU3QzI3NDVD
NUEwMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMS5jcHAgKi87IH07CisJCTFDNTY1NTgwMjc0
NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNTY1NTdEMjc0NUM1QTEwMDYzMDBBRiAvKiBV
bmlmaWVkU291cmNlMTAyLmNwcCAqLzsgfTsKKwkJMUM1NjU1ODEyNzQ1QzVBMTAwNjMwMEFGIC8q
IFVuaWZpZWRTb3VyY2UxMDMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM1NjU1N0UyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDMu
Y3BwICovOyB9OwogCQkxQzg5MUQ2NjE5QjEyNEZGMDBCQTc5REQgLyogV2ViSW5zcGVjdG9yVUku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDODkxRDYz
MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JVSS5oICovOyB9OwogCQkxQzhFMjgyMDEy
NzVEMTU0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMjgxRTEyNzVEMTU0MDBCQzdCRDAgLyogV2ViSW5z
cGVjdG9yLmggKi87IH07CiAJCTFDOEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0
b3JVSVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzhFMjgzMjEyNzVENzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yVUlQcm94eS5oICovOyB9
OwpAQCAtMjg3OSw2ICsyODgyLDkgQEAKIAkJMUMyMDkzNUUyMjMxOENCMDAwMDI2QTM5IC8qIE5T
QXR0cmlidXRlZFN0cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyMDkzNUYyMjMxOENCMDAwMDI2QTM5IC8q
IE5TQXR0cmlidXRlZFN0cmluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TQXR0cmlidXRl
ZFN0cmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyMTg0MDEyMjMzODcy
ODAwQkFDNzAwIC8qIE5TQXR0cmlidXRlZFN0cmluZ1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzU2NTU3QzI3NDVDNUEwMDA2MzAwQUYgLyogVW5pZmllZFNv
dXJjZTEwMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTAxLmNwcDsgcGF0
aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTAxLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFDNTY1NTdE
Mjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVuaWZpZWRTb3VyY2UxMDIuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDIuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJMUM1NjU1N0UyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRT
b3VyY2UxMDMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwMy5jcHA7IHBh
dGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTEwMy5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQzczOUU4
NTIzNDdCQ0Y2MDBDNjIxRUMgLyogQ29yZVRleHRIZWxwZXJzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ29yZVRleHRIZWxwZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzczOUU4NzIzNDdCRDBGMDBDNjIxRUMgLyogQ29yZVRleHRIZWxwZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvcmVUZXh0SGVscGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzc3
QzE5NTEyODhBODcyMDA2QTc0MkYgLyogV2ViSW5zcGVjdG9yVUlQcm94eS5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJbnNwZWN0b3JVSVByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg5NSw2ICsyOTAxLDgwIEBACiAJCTFDOEUy
QTMxMTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
MUM4RTJBMzIxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3Rvck1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3Rvck1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDOEUyREFEMTI3OEM1QjIwMEJDN0JEMCAv
KiBXZWJJbnNwZWN0b3JVSU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkluc3BlY3RvclVJTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzAxRDI3NDQ2QTAzMDAyQ0NCNzggLyogUmVtb3RlR1BVLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZUdQVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDFFMjc0NDZBMDMwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdQVU9iamVjdEhlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
MUYyNzQ0NkEwMzAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZVF1ZXJ5U2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDIwMjc0
NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlUmVuZGVyQnVuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDIx
Mjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDIyMjc0
NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwMjMyNzQ0NkEwNTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTaGFkZXJNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzAyNDI3NDQ2QTA1MDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0
SGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVPYmplY3RIZWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMjUyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90
ZVRleHR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzAyNjI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVyUGFzc0VuY29k
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyNzI3NDQ2QTA2MDAy
Q0NCNzggLyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
MjgyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDI5Mjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQaXBlbGluZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVSZW5kZXJQaXBlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzAyQTI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJCMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVSZW5k
ZXJCdW5kbGVFbmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyQzI3NDQ2
QTA3MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1w
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDJEMjc0NDZBMDcwMDJD
Q0I3OCAvKiBSZW1vdGVQaXBlbGluZUxheW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVQaXBl
bGluZUxheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyRTI3NDQ2
QTA4MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
VGV4dHVyZVZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMkYyNzQ0
NkEwODAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVEZXZpY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMDI3NDQ2
QTA4MDAyQ0NCNzggLyogUmVtb3RlUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUXVldWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzEyNzQ0NkEwODAwMkNDQjc4
IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVBp
cGVsaW5lTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzIy
NzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVFeHRlcm5hbFRleHR1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwMzMyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbmRlclBpcGVsaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzQyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1v
ZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTaGFkZXJNb2R1bGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzUyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1
cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDM2Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0
dXJlVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlldy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDM3Mjc0NDZBMDkwMDJDQ0I3OCAvKiBS
ZW1vdGVEZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlRGV2aWNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDM4Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVHUFUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR1BVLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDM5Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwM0EyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVF1ZXJ5U2V0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwM0IyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1
dGVQaXBlbGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDb21wdXRlUGlwZWxpbmUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzQzI3NDQ2QTBBMDAyQ0NC
NzggLyogUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNvbXB1
dGVQaXBlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA0RDI3NDQ2
Q0I3MDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzA0RTI3NDQ2Q0I3MDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDRGMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUFkYXB0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTAyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90
ZUNvbW1hbmRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDUxMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQmluZEdyb3VwTGF5b3V0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTIyNzQ0NkNCODAwMkNDQjc4
IC8qIFJlbW90ZUJpbmRHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVCaW5kR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzA1MzI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cExheW91dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NDI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVt
b3RlQmluZEdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUJp
bmRHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NTI3NDQ2Q0I5
MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZEVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwNTYyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRF
bmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNTcyNzQ0NkNC
OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzA1ODI3NDQ2Q0JBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU5
Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUFkYXB0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzA1QTI3NDQ2Q0JBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBhc3NF
bmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQ
YXNzRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3OTI3NDRB
MUNDMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwN0EyNzQ0QTIwNTAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZExpbWl0cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwN0IyNzQ0QjQxNjAwMkNDQjc4IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVz
c2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwN0MyNzQ0Qjk5MTAwMkNDQjc4IC8qIFdlYkdQ
VU91dE9mTWVtb3J5RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVT3V0T2ZNZW1vcnlFcnJv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3RDI3NDRCOUI3MDAyQ0NC
NzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVZhbGlk
YXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3RTI3NDRC
OURCMDAyQ0NCNzggLyogV2ViR1BVRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVRXJyb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODAyNzQ0QkQ5NzAwMkNDQjc4
IC8qIFJlbW90ZVF1ZXVlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVF1ZXVlLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4MTI3NDRCRDk4MDAyQ0NCNzgg
LyogUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVy
UGFzc0VuY29kZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDgyMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzA4MzI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVy
QnVuZGxlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRlckJ1bmRsZS5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwODQyNzQ0QkQ5ODAwMkNDQjc4IC8q
IFJlbW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXBM
YXlvdXQubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg1
Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwODYyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5l
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NzI3NDRCRDk5MDAyQ0NCNzggLyogUmVt
b3RlVGV4dHVyZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4ODI3NDRCRDk5MDAyQ0NCNzggLyog
UmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlVGV4dHVyZVZpZXcubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg5Mjc0NEJEOTkw
MDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNv
bW1hbmRCdWZmZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDhBMjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDhCMjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1v
dGVRdWVyeVNldC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEMyNzQ0QkQ5QTAwMkNDQjc4IC8q
IFJlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTaGFkZXJNb2R1bGUu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDhEMjc0NEJE
OUEwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNhbXBs
ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDhFMjc0
NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzA4RjI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlRGV2aWNlLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlbW90ZURldmljZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwOTAyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVCdWZmZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDkxMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDkyMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5MzI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTQyNzQ0
QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUdQVS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVHUFUubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDk1Mjc0NEJEOUIw
MDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVD
b21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUM5RUJBNUIyMDg3RTc0RTAwMDU0NDI5IC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBOYXRpdmVXZWJNb3VzZUV2ZW50
SU9TLm1tOyBwYXRoID0gaW9zL05hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQThCOTM1MTI3Qzc3NEUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0
b3JVSVByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUNBOEI5NDMxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVj
dG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNzE4NSw2ICs3MjY1LDgxIEBACiAJCQlwYXRoID0g
QXV0b21hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFDOThDMDFD
Mjc0NDY5MjYwMDJDQ0I3OCAvKiBXZWJHUFUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTFDOThDMDU5Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVBZGFw
dGVyLmNwcCAqLywKKwkJCQkxQzk4QzA0RjI3NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3RlQWRhcHRl
ci5oICovLAorCQkJCTFDOThDMDkxMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVBZGFwdGVyLm1l
c3NhZ2VzLmluICovLAorCQkJCTFDOThDMDUyMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5k
R3JvdXAuY3BwICovLAorCQkJCTFDOThDMDU0Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5k
R3JvdXAuaCAqLywKKwkJCQkxQzk4QzA5MjI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQmluZEdy
b3VwLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDUxMjc0NDZDQjgwMDJDQ0I3OCAvKiBSZW1v
dGVCaW5kR3JvdXBMYXlvdXQuY3BwICovLAorCQkJCTFDOThDMDUzMjc0NDZDQjkwMDJDQ0I3OCAv
KiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA4NDI3NDRCRDk4MDAyQ0NC
NzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDRF
Mjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuY3BwICovLAorCQkJCTFDOThDMDREMjc0
NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuaCAqLywKKwkJCQkxQzk4QzA5MDI3NDRCRDlB
MDAyQ0NCNzggLyogUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDUwMjc0
NDZDQjgwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVyLmNwcCAqLywKKwkJCQkxQzk4QzA1
NzI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5oICovLAorCQkJCTFDOThD
MDg5Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluICov
LAorCQkJCTFDOThDMDU2Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rlci5j
cHAgKi8sCisJCQkJMUM5OEMwNTUyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNv
ZGVyLmggKi8sCisJCQkJMUM5OEMwOTUyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRF
bmNvZGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDU4Mjc0NDZDQkEwMDJDQ0I3OCAvKiBS
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuY3BwICovLAorCQkJCTFDOThDMDVBMjc0NDZDQkEwMDJD
Q0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCAqLywKKwkJCQkxQzk4QzA5MzI3NDRC
RDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluICovLAor
CQkJCTFDOThDMDNCMjc0NDZBMEEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUuY3Bw
ICovLAorCQkJCTFDOThDMDNDMjc0NDZBMEEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxp
bmUuaCAqLywKKwkJCQkxQzk4QzA4RTI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBp
cGVsaW5lLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDJGMjc0NDZBMDgwMDJDQ0I3OCAvKiBS
ZW1vdGVEZXZpY2UuY3BwICovLAorCQkJCTFDOThDMDM3Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1v
dGVEZXZpY2UuaCAqLywKKwkJCQkxQzk4QzA4RjI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlRGV2
aWNlLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDJBMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1v
dGVFeHRlcm5hbFRleHR1cmUuY3BwICovLAorCQkJCTFDOThDMDMyMjc0NDZBMDgwMDJDQ0I3OCAv
KiBSZW1vdGVFeHRlcm5hbFRleHR1cmUuaCAqLywKKwkJCQkxQzk4QzA4MjI3NDRCRDk4MDAyQ0NC
NzggLyogUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDFE
Mjc0NDZBMDMwMDJDQ0I3OCAvKiBSZW1vdGVHUFUuY3BwICovLAorCQkJCTFDOThDMDM4Mjc0NDZB
MDkwMDJDQ0I3OCAvKiBSZW1vdGVHUFUuaCAqLywKKwkJCQkxQzk4QzA5NDI3NDRCRDlCMDAyQ0NC
NzggLyogUmVtb3RlR1BVLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDMxMjc0NDZBMDgwMDJD
Q0I3OCAvKiBSZW1vdGVQaXBlbGluZUxheW91dC5jcHAgKi8sCisJCQkJMUM5OEMwMkQyNzQ0NkEw
NzAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmggKi8sCisJCQkJMUM5OEMwODUyNzQ0
QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluICovLAorCQkJ
CTFDOThDMDNBMjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVRdWVyeVNldC5jcHAgKi8sCisJCQkJ
MUM5OEMwMUYyNzQ0NkEwMzAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0LmggKi8sCisJCQkJMUM5
OEMwOEIyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluICovLAor
CQkJCTFDOThDMDIxMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVRdWV1ZS5jcHAgKi8sCisJCQkJ
MUM5OEMwMzAyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmggKi8sCisJCQkJMUM5OEMw
ODAyNzQ0QkQ5NzAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLm1lc3NhZ2VzLmluICovLAorCQkJCTFD
OThDMDM5Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUuY3BwICovLAorCQkJ
CTFDOThDMDIwMjc0NDZBMDQwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGUuaCAqLywKKwkJ
CQkxQzk4QzA4MzI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyQnVuZGxlLm1lc3NhZ2Vz
LmluICovLAorCQkJCTFDOThDMDJCMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5k
bGVFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzAyMjI3NDQ2QTA0MDAyQ0NCNzggLyogUmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2Rlci5oICovLAorCQkJCTFDOThDMDhBMjc0NEJEOTkwMDJDQ0I3OCAv
KiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDI2
Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgKi8sCisJCQkJ
MUM5OEMwMjcyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmggKi8s
CisJCQkJMUM5OEMwODEyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
Lm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDMzMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVS
ZW5kZXJQaXBlbGluZS5jcHAgKi8sCisJCQkJMUM5OEMwMjkyNzQ0NkEwNzAwMkNDQjc4IC8qIFJl
bW90ZVJlbmRlclBpcGVsaW5lLmggKi8sCisJCQkJMUM5OEMwODYyNzQ0QkQ5OTAwMkNDQjc4IC8q
IFJlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDI4Mjc0NDZB
MDYwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLmNwcCAqLywKKwkJCQkxQzk4QzAyQzI3NDQ2QTA3
MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5oICovLAorCQkJCTFDOThDMDhEMjc0NEJEOUEwMDJD
Q0I3OCAvKiBSZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTFDOThDMDIzMjc0NDZB
MDUwMDJDQ0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1bGUuY3BwICovLAorCQkJCTFDOThDMDM0Mjc0
NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1bGUuaCAqLywKKwkJCQkxQzk4QzA4QzI3
NDRCRDlBMDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluICovLAorCQkJ
CTFDOThDMDM1Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLmNwcCAqLywKKwkJCQkx
Qzk4QzAyNTI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVyZS5oICovLAorCQkJCTFDOThD
MDg3Mjc0NEJEOTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluICovLAorCQkJ
CTFDOThDMDM2Mjc0NDZBMDkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5jcHAgKi8sCisJ
CQkJMUM5OEMwMkUyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3LmggKi8sCisJ
CQkJMUM5OEMwODgyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVWaWV3Lm1lc3NhZ2Vz
LmluICovLAorCQkJCTFDOThDMDI0Mjc0NDZBMDUwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3RIZWFw
LmNwcCAqLywKKwkJCQkxQzk4QzAxRTI3NDQ2QTAzMDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0SGVh
cC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBXZWJHUFU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQkxQ0I3NDYxOTI3NDM2REUzMDBGMTk4NzQgLyogV2ViR1BVICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTcyNTUsNiArNzQxMCw3IEBA
CiAJCQkJMUNCNzQ2NzkyNzQzOUNCMjAwRjE5ODc0IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUu
aCAqLywKIAkJCQkxQ0I3NDY4MzI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BVQ29tbWFuZEJ1ZmZl
ckRlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDY5MjI3NDM5Q0I5MDBGMTk4NzQgLyogV2ViR1BV
Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwN0IyNzQ0QjQxNjAwMkND
Qjc4IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oICovLAogCQkJCTFDQjc0Njk3Mjc0MzlD
QkEwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3
NDY4OTI3NDM5Q0I2MDBGMTk4NzQgLyogV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMu
aCAqLywKIAkJCQkxQ0I3NDY3NjI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvci5oICovLApAQCAtNzI2Miw2ICs3NDE4LDcgQEAKIAkJCQkxQ0I3NDY0NzI3
NDM3QTdGMDBGMTk4NzQgLyogV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQuaCAqLywKIAkJ
CQkxQ0I3NDY3MTI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCAq
LywKIAkJCQkxQ0I3NDY4NTI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BVRGV2aWNlRGVzY3JpcHRv
ci5oICovLAorCQkJCTFDOThDMDdFMjc0NEI5REIwMDJDQ0I3OCAvKiBXZWJHUFVFcnJvci5oICov
LAogCQkJCTFDQjc0Njg3Mjc0MzlDQjYwMEYxOTg3NCAvKiBXZWJHUFVFeHRlbnQzRC5oICovLAog
CQkJCTFDQjc0NjZGMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5k
aW5nTGF5b3V0LmggKi8sCiAJCQkJMUNCNzQ2ODYyNzQzOUNCNTAwRjE5ODc0IC8qIFdlYkdQVUV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCAqLywKQEAgLTcyNzYsNiArNzQzMyw3IEBACiAJCQkJ
MUNCNzQ2NkMyNzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgg
Ki8sCiAJCQkJMUNCNzQ2NzAyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVU9yaWdpbjJELmggKi8s
CiAJCQkJMUNCNzQ2QTAyNzQzOUNCRDAwRjE5ODc0IC8qIFdlYkdQVU9yaWdpbjNELmggKi8sCisJ
CQkJMUM5OEMwN0MyNzQ0Qjk5MTAwMkNDQjc4IC8qIFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCAq
LywKIAkJCQkxQ0I3NDY5NDI3NDM5Q0I5MDBGMTk4NzQgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5oICovLAogCQkJCTFDQjc0Njk4Mjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVQaXBl
bGluZUxheW91dERlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDY2RDI3NDM5Q0FGMDBGMTk4NzQg
LyogV2ViR1BVUHJpbWl0aXZlU3RhdGUuaCAqLywKQEAgLTcyOTUsOSArNzQ1MywxMiBAQAogCQkJ
CTFDQjc0NjZCMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9y
LmggKi8sCiAJCQkJMUNCNzQ2NzMyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVVN0ZW5jaWxGYWNl
U3RhdGUuaCAqLywKIAkJCQkxQ0I3NDY5NjI3NDM5Q0JBMDBGMTk4NzQgLyogV2ViR1BVU3RvcmFn
ZVRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCisJCQkJMUM5OEMwNzkyNzQ0QTFDQzAwMkNDQjc4
IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmggKi8sCisJCQkJMUM5OEMwN0EyNzQ0QTIwNTAw
MkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZExpbWl0cy5oICovLAogCQkJCTFDQjc0Njc1Mjc0MzlD
QjEwMEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5oICovLAogCQkJCTFDQjc0
NjgxMjc0MzlDQjQwMEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oICovLAogCQkJ
CTFDQjc0NjgwMjc0MzlDQjQwMEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3Iu
aCAqLywKKwkJCQkxQzk4QzA3RDI3NDRCOUI3MDAyQ0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVy
cm9yLmggKi8sCiAJCQkJMUNCNzQ2NzIyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleEF0
dHJpYnV0ZS5oICovLAogCQkJCTFDQjc0NjhGMjc0MzlDQjgwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0
ZXhCdWZmZXJMYXlvdXQuaCAqLywKIAkJCQkxQ0I3NDY5QTI3NDM5Q0JCMDBGMTk4NzQgLyogV2Vi
R1BVVmVydGV4U3RhdGUuaCAqLywKQEAgLTc2ODYsNiArNzg0Nyw5IEBACiAJCQkJMkQ4NTA4QzQy
MTJFMzNFQzAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OC5jcHAgKi8sCiAJCQkJMkQ4NTA4QjEy
MTJFMzNFOTAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OS5jcHAgKi8sCiAJCQkJMkQ4NTA4QkUy
MTJFMzNFQjAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2UxMDAuY3BwICovLAorCQkJCTFDNTY1NTdD
Mjc0NUM1QTAwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCAqLywKKwkJCQkxQzU2NTU3
RDI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMi5jcHAgKi8sCisJCQkJMUM1NjU1
N0UyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDMuY3BwICovLAogCQkJKTsKIAkJ
CW5hbWUgPSAidW5pZmllZC1zb3VyY2VzIjsKIAkJCXBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi91bmlmaWVkLXNvdXJjZXMiOwpAQCAtOTA1MSw2ICs5MjE1LDcgQEAKIAkJNTUwNjQwQTEy
NDA3MUEyOTAwQUFFMDQ1IC8qIGdyYXBoaWNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkxQzk4QzAxQzI3NDQ2OTI2MDAyQ0NCNzggLyogV2ViR1BVICov
LAogCQkJCUY0MDk0Q0JDMjU1MzA0QUYwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFJlYWRlckhhbmRs
ZS5jcHAgKi8sCiAJCQkJRjQwOTRDQkIyNTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVh
ZGVySGFuZGxlLmggKi8sCiAJCQkJN0IxNjE5MTMyNzE5QUU3NjAwQzQwRUFDIC8qIEdQVVByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTC5oICovLApAQCAtMTQ3MTIsNiArMTQ4NzcsOSBAQAogCQkJCTJE
ODUwOEQ4MjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlmaWVkU291cmNlOTguY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQ4NTA4QzUyMTJFMzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDg1MDhEMjIxMkUzM0VEMDAwRUY0NkMgLyogVW5pZmllZFNv
dXJjZTEwMC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzU2NTU3RjI3NDVDNUExMDA2MzAwQUYg
LyogVW5pZmllZFNvdXJjZTEwMS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzU2NTU4MDI3NDVD
NUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
QzU2NTU4MTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVyZmFjZUlkaW9t
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFk
YXB0ZXJQcm94eS5jcHAKaW5kZXggZjYzNDg0NmI5NTU3M2Q1MzQ2ZDg2YjhkYjZkYjlkMzQ0MzVk
MTE3My4uZGE0YmQxMTBiYzM3ZmEwYWIyMjU5Zjc3ODFmMGFjMzlmN2ZkNDE3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRh
cHRlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFJlbW90ZUFk
YXB0ZXJQcm94eTo6flJlbW90ZUFkYXB0ZXJQcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlQWRh
cHRlclByb3h5OjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZp
Y2U+KT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3RlQWRhcHRlclByb3h5OjpyZXF1ZXN0RGV2aWNl
KGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYpPiYmIGNhbGxiYWNrKQogewog
ICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKICAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2sp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQWRhcHRlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaAppbmRleCA2ZTg1NDNiMTA1YjliNTQ5
YmY2OGY2ODkwMTg2MGU4N2E5YmExZjE1Li44MzNiYjNlZTM1OWQxYmI4ODRiZjc5OWU5NTlhZmVh
NTk0Nzc4NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaApAQCAtNTYsNyAr
NTYsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViR1BVSWRlbnRpZmllciBiYWNraW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNraW5nOyB9CiAKLSAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgUEFM
OjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6
V2ViR1BVOjpEZXZpY2U+KT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0
IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxQ
QUw6OldlYkdQVTo6RGV2aWNlPiYmKT4mJikgZmluYWw7CiAKICAgICBEZXF1ZTxXVEY6OkZ1bmN0
aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+KT4+IG1fY2FsbGJhY2tzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVEZXZpY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVEZXZpY2VQcm94eS5jcHAKaW5kZXggYmNmMzkzZTliYTAzOGNhYmU3Njcy
NTEwY2I0MjFjYTY5YTNiODRlYS4uODI5Zjg1NTU0NGYyOGY4NDBmZmMxZjAwYjFmOTVmMTNiMDRh
NmNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZVByb3h5LmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIlJlbW90ZVNhbXBsZXJQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVNo
YWRlck1vZHVsZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlVGV4dHVyZVByb3h5LmgiCisjaW5j
bHVkZSAiV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BV
Q29udmVydFRvQmFja2luZ0NvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVRleHR1cmVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwCmluZGV4IDNmZDg1NzM0NzU0Y2Rj
MGUxYzFkMWYxNmMwYTdlYjU2NDYxMGYwMjcuLmQxZmQzNDI5NWUxZGE4MTE4YWMxNWE1ODc3MWE4
NDg5YzcyMjY1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcApAQCAt
MzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiUmVtb3RlVGV4dHVyZVZpZXdQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR1BV
VGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAK
QEAgLTQyLDcgKzQzLDcgQEAgUmVtb3RlVGV4dHVyZVByb3h5Ojp+UmVtb3RlVGV4dHVyZVByb3h5
KCkKIHsKIH0KIAotUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4gUmVtb3RlVGV4dHVyZVBy
b3h5OjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVW
aWV3RGVzY3JpcHRvcj4mIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8UEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3PiBSZW1vdGVUZXh0dXJlUHJveHk6OmNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikKIHsKICAg
ICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CiAgICAgcmV0dXJuIFJlbW90ZVRleHR1cmVWaWV3
UHJveHk6OmNyZWF0ZShtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlVGV4dHVyZVByb3h5LmgKaW5kZXggNWZhZDgxYjZiZDk0ZGQ5NGVlODQ0ZTgwNTIxODVlN2Zl
NDljODVlMS4uYTM4Y2YzNDNmMzlkZTM1ODFlNmU0YTkxNjI5ZThhMmNlODk0YTMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
VGV4dHVyZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToK
IAogICAgIFdlYkdQVUlkZW50aWZpZXIgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2lu
ZzsgfQogCi0gICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhjb25z
dCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JikgY29u
c3QgZmluYWw7CisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4gY3JlYXRlVmlldyhj
b25zdCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+Jikg
ZmluYWw7CiAKICAgICB2b2lkIGRlc3Ryb3koKSBmaW5hbDsKIAo=
</data>
<flag name="commit-queue"
          id="469710"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444635</attachid>
            <date>2021-11-17 21:00:04 -0800</date>
            <delta_ts>2021-11-17 22:05:43 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233247-20211117210003.patch</filename>
            <type>text/plain</type>
            <size>467452</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA5NWIwZjE4
OTk0MmNiOGQ3MGExNDNmZGE5ZGVkOGY1ZDViZjlhNzYxLi44MjM2MmFkOWE0NmQ2YWRjZGFiMjAz
ZWUyMmVmNWUzZjQ2ZTZkMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAor
MjAyMS0xMS0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
dG8gdGhlIGVudW0gY2xhc3Nlcywgc28gdGhleSBjYW4gYmUgc2VyaWFsaXplZC4KKworICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHA6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6QWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2UpOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5o
OgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oOgorICAgICAg
ICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUuaDoKKyAgICAgICAgKiBw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9zdFJlYXNvbi5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaDoKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg6CisgICAgICAgICogcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVMb2FkT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VU1hcE1vZGUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
U3RhdGlzdGljTmFtZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93
ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVF1ZXJ5VHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNv
ZGVyLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNh
bXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3RvcmFnZVRleHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN0b3JlT3AuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVBc3BlY3Qu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24u
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lv
bi5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oOgor
CiAyMDIxLTExLTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMaXZlIFRleHRdIFBsdW1iIGFuIGlkZW50aWZpZXIgc3RyaW5nIHRocm91Z2ggYENo
cm9tZUNsaWVudDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbigpYApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNjNiODZk
ODVhYTc0MGFlYmQzNzk2MmI4MjRiYmQ3MThmNDMxM2QyLi4yZTQxM2RhZDFmZjFkYmU2ODdjNWIx
OWZiY2M0NGRiMzM0YWYyMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MCBAQAorMjAyMS0xMS0x
NyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJHUFVdIEFkZCBJUEMgbWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViR1BVCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyNDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkIGNsYXNzZXMgaW4gR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUgdG8gcmVjZWl2ZSBXZWJHUFUncyBJUEMgbWVzc2FnZXMuCisgICAg
ICAgIEVhY2ggb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGFuIGFzc29jaWF0ZWQgbWVzc2FnZXMu
aW4gZmlsZS4gRWFjaCBvZiB0aGVzZSBvYmplY3RzCisgICAgICAgIGhvbGRzIGEgYmFja2luZyBQ
QUw6OldlYkdQVSBvYmplY3Qgd2hpY2ggaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbi4gVGhl
IG1ldGhvZHMKKyAgICAgICAgdGhhdCByZWNlaXZlIHRoZSBJUEMgbWVzc2FnZXMgYXJlIGN1cnJl
bnRseSB1bmltcGxlbWVudGVkLCBidXQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoCisgICAgICAgIHRo
ZXknbGwganVzdCBmb3J3YXJkIG9uIHRoZSBjYWxscyB0byB0aGVpciBiYWNraW5nIFBBTDo6V2Vi
R1BVIG9iamVjdC4KKworICAgICAgICBUaGlzIGFsc28gYWRkcyBzZXJpYWxpemF0aW9uIHJvdXRp
bmVzIGZvciBhbGwgdGhlIHN0cnVjdHMgaW4gU2hhcmVkL1dlYkdQVS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgKHlldCkuIFdlJ3Jl
IHZlcnkgY2xvc2UsIHRob3VnaCEhISEKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQWRhcHRlcjo6UmVtb3RlQWRhcHRlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUFkYXB0ZXI6On5SZW1vdGVBZGFwdGVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCaW5kR3JvdXA6OlJlbW90ZUJp
bmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6flJlbW90ZUJpbmRH
cm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJpbmRHcm91cDo6c2V0TGFiZWwpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0
dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdy
b3VwLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmguCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUJpbmRHcm91cExheW91dDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0Ojp+UmVtb3RlQmluZEdyb3VwTGF5b3V0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQmluZEdyb3VwTGF5b3V0OjpzZXRMYWJlbCk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5j
cHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZlcjo6UmVtb3RlQnVmZmVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQnVmZmVyOjptYXBBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZl
cjo6dW5tYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVCdWZmZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5Lmgu
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21tYW5kQnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVD
b21tYW5kQnVmZmVyOjpSZW1vdGVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVDb21tYW5kQnVmZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
Q29tbWFuZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFu
ZEVuY29kZXI6OlJlbW90ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
Q29tbWFuZEVuY29kZXI6On5SZW1vdGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9UZXh0
dXJlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OmZpbGxCdWZmZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXAp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRpbWVzdGFt
cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZlUXVlcnlT
ZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmluaXNoKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQ29tbWFuZEVuY29kZXI6OnNldExhYmVsKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5j
b2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjp+UmVtb3RlQ29tcHV0
ZVBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVy
OjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rl
cjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6
OmRpc3BhdGNoSW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0Vu
Y29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3Vw
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjppbnNlcnREZWJ1
Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0
TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNvbXB1dGVQ
aXBlbGluZTo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
Q29tcHV0ZVBpcGVsaW5lOjp+UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5o
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBl
bGluZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURl
dmljZTo6UmVtb3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjp+UmVt
b3RlRGV2aWNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6
OmltcG9ydEV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6
Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpj
cmVhdGVQaXBlbGluZUxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVTaGFk
ZXJNb2R1bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQ
aXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUmVuZGVyUGlw
ZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBl
bGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVSZW5kZXJQ
aXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpjcmVhdGVDb21t
YW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUmVuZGVy
QnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlUXVl
cnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OnB1c2hFcnJvclNjb3BlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGV2aWNlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVFeHRlcm5hbFRleHR1cmU6OlJl
bW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4dGVybmFsVGV4
dHVyZTo6flJlbW90ZUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUV4
dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1lc3NhZ2VzLmlu
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVTo6UmVtb3Rl
R1BVKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjp+UmVtb3RlR1BVKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlR1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91dDo6UmVt
b3RlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVQaXBlbGluZUxheW91
dDo6flJlbW90ZVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUGlwZWxp
bmVMYXlvdXQ6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVQaXBlbGluZUxheW91dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0LmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6UmVtb3RlUXVl
cnlTZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6flJlbW90ZVF1ZXJ5U2V0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVlcnlTZXQ6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVRdWVyeVNldDo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbjogQWRk
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6
UmVtb3RlUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVRdWV1ZTo6flJlbW90ZVF1ZXVl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6OnN1Ym1pdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUXVldWU6
OndyaXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpjb3B5RXh0ZXJu
YWxJbWFnZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVF1ZXVlOjpzZXRMYWJl
bCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuaDog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUu
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVJlbmRlckJ1bmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyQnVuZGxlOjpSZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJCdW5kbGU6On5SZW1vdGVSZW5kZXJCdW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJCdW5kbGU6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVu
ZGVyQnVuZGxlRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJCdW5kbGVFbmNvZGVyOjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1bmRsZUVuY29k
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRQaXBl
bGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldElu
ZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6
c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6
OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5j
b2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuaDogQWRk
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6On5SZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNv
ZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNz
RW5jb2Rlcjo6ZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
OjpkcmF3SW5kaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rl
cjo6ZHJhd0luZGV4ZWRJbmRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQ
YXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxSZWZlcmVuY2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5PY2NsdXNpb25RdWVy
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjplbmRPY2NsdXNp
b25RdWVyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpiZWdp
blBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
UGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjpSZW1vdGVSZW5kZXJQaXBlbGluZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlclBpcGVsaW5lOjp+UmVtb3RlUmVuZGVyUGlw
ZWxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJQaXBlbGluZTo6Z2V0QmluZEdy
b3VwTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyUGlwZWxpbmU6OnNldExh
YmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQ
aXBlbGluZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmguCisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTYW1wbGVyOjp+UmVtb3RlU2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNhbXBsZXI6OnNldExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVTYW1wbGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaC4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVUZXh0dXJlUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTaGFkZXJNb2R1
bGU6OlJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNoYWRlck1v
ZHVsZTo6flJlbW90ZVNoYWRlck1vZHVsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNoYWRl
ck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2hhZGVy
TW9kdWxlOjpzZXRMYWJlbCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlU2hhZGVyTW9kdWxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5oLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVy
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRl
eHR1cmU6OlJlbW90ZVRleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlOjp+
UmVtb3RlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHR1cmU6OmNyZWF0ZVZp
ZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlOjpkZXN0cm95KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlVGV4dHVyZTo6c2V0TGFiZWwpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVTWFwTW9kZS5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmlldzo6UmVt
b3RlVGV4dHVyZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0dXJlVmlldzo6flJl
bW90ZVRleHR1cmVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dHVyZVZpZXc6OnNl
dExhYmVsKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0
dXJlVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVUZXh0dXJlLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpPYmplY3RIZWFwKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21CYWNraW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3Vw
TGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6
OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21wdXRlUGFz
c0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVh
cDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9tQmFja2luZyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5b3V0RnJv
bUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRR
dWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFw
Ojpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2Jq
ZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNr
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVy
UGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0
SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFj
a2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFRleHR1
cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29u
dmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2Fy
ZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkJpbmRHcm91cEVudHJ5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkJpbmRHcm91cEVudHJ5OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJsZW5k
U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6QmxlbmRTdGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0OjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bG9yRGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvckRp
Y3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0
YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0
b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvcjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVz
Y3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRF
bmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b21tYW5kRW5jb2RlckRlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZTo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRlcHRo
U3RlbmNpbFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRl
cHRoU3RlbmNpbFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
RGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkRldmljZURlc2Ny
aXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RGV2aWNlRGVz
Y3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5j
b2RlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNE
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0REaWN0OjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNERGljdDo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Ojpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRl
cm5hbFRleHR1cmVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6RXh0ZXJu
YWxUZXh0dXJlRGVzY3JpcHRvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkZyYWdtZW50U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
RnJhZ21lbnRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUlt
YWdlQ29weUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZl
cjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZm
ZXI6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRl
cm5hbEltYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlF
eHRlcm5hbEltYWdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1
cmU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4
dHVyZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRl
eHR1cmVUYWdnZWQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJl
VGFnZ2VkOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmVUYWdnZWQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJ
bWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpJbWFnZURhdGFMYXlv
dXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6SW1hZ2VEYXRhTGF5
b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVT
dGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0ZTo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U6
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9yaWdpbjJERGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9y
aWdpbjNERGljdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPcmln
aW4zRERpY3Q6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1l
bW9yeUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok91
dE9mTWVtb3J5RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T3V0T2ZNZW1vcnlFcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpQaXBl
bGluZURlc2NyaXB0b3JCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpR
dWVyeVNldERlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6UXVlcnlTZXREZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OlJlbmRlckJ1bmRsZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2Ny
aXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
Q29sb3JBdHRhY2htZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFzc0Nv
bG9yQXR0YWNobWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpS
ZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0
YWNobWVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBh
c3NEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFzc0Rlc2Ny
aXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFz
c0Rlc2NyaXB0b3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGFzc0xheW91
dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5
b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcFdyaXRlcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NUaW1l
c3RhbXBXcml0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW5k
ZXJQYXNzVGltZXN0YW1wV3JpdGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9uczo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvcjo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVC
aW5kaW5nTGF5b3V0OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3Vw
cG9ydGVkRmVhdHVyZXMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVy
ZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkRmVh
dHVyZXM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRM
aW1pdHMuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0
czo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5n
TGF5b3V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdMYXlvdXQ6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdM
YXlvdXQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVz
Y3JpcHRvci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9y
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNj
cmlwdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9y
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVWaWV3RGVz
Y3JpcHRvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRp
b25FcnJvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29sb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dDo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OlZlcnRleFN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OlZlcnRleFN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OlJlbW90ZUFkYXB0ZXJQcm94eTo6cmVxdWVzdERldmljZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZVRleHR1cmVQcm94eTo6
Y3JlYXRlVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlVGV4dHVyZVByb3h5
OjpjcmVhdGVWaWV3IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5Lmg6CisKIDIwMjEtMTEtMTcgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU11bR1BVUF0g
QWRkIGFjY2VzcyB0byBsb2dnaW5nIHNlcnZpY2UgZm9yIHJvb3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVB
ZGFwdGVySW1wbC5jcHAKaW5kZXggYzQ4MDVkZDk4NjExOTdlZTk1ZTUzNmYzYjUwZjU3ZGE2NDY5
YWExNC4uMjNmNWM5YWNmMDkxZGQ4N2QzMzUwOTAxZjQ1ZWEwNTZmMmZjYTFiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFw
dGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
SW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIHJlcXVl
c3REZXZpY2VDYWxsYmFjayhXR1BVUmVxdWVzdERldmljZVN0YXR1cyBzdGF0dXMsIFdHUFVEZXZp
Y2UgZGV2aWNlLCBjbwogICAgIGFkYXB0ZXItPnJlcXVlc3REZXZpY2VDYWxsYmFjayhzdGF0dXMs
IGRldmljZSwgbWVzc2FnZSk7CiB9CiAKLXZvaWQgQWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2Uo
Y29uc3QgRGV2aWNlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV1RGOjpGdW5jdGlvbjx2b2lkKFJl
ZjxEZXZpY2U+KT4mJiBjYWxsYmFjaykKK3ZvaWQgQWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2Uo
Y29uc3QgRGV2aWNlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV1RGOjpGdW5jdGlvbjx2b2lkKFJl
ZjxEZXZpY2U+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFJlZiBwcm90ZWN0ZWRUaGlzKCp0aGlz
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
SW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oCmluZGV4IDM0OTI0YWM2ODliNzk5ZjY5
ZjQ4ZjE2ZjRmMDE1ZWQ5YzU3MDE0MDguLmU4NGVkNGE4NWI2YmMzZTQyMTNkODM3ZDkxOGE3YzE2
ZGY5ODJhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgKQEAgLTU4LDkgKzU4LDkg
QEAgcHJpdmF0ZToKICAgICBXR1BVQWRhcHRlciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9i
YWNraW5nOyB9CiAKICAgICB2b2lkIHJlcXVlc3REZXZpY2VDYWxsYmFjayhXR1BVUmVxdWVzdERl
dmljZVN0YXR1cywgV0dQVURldmljZSwgY29uc3QgY2hhciogbWVzc2FnZSk7Ci0gICAgdm9pZCBy
ZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OmZ1bmN0aW9uPHZvaWQo
UmVmPERldmljZT4pPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2
aWNlRGVzY3JpcHRvciYsIFdURjo6ZnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJikgZmlu
YWw7CiAKLSAgICBEZXF1ZTxXVEY6OmZ1bmN0aW9uPHZvaWQoUmVmPERldmljZT4pPj4gbV9jYWxs
YmFja3M7CisgICAgRGVxdWU8V1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPj4gbV9j
YWxsYmFja3M7CiAKICAgICBXR1BVQWRhcHRlciBtX2JhY2tpbmcgeyBudWxscHRyIH07CiAgICAg
UmVmPENvbnZlcnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oCmluZGV4
IDMxZjQ1NGJiZGQ0OWE3OWJjMzdmY2I4NzEzOTQ2NTljZmVkMGQ5MmMuLjNjOWI1YzdiNGQ1ODNk
MmE2NzI4YmJkNzI3M2I1YmIyNjBjNjJkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQ
VUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJX
ZWJHUFVTaGFkZXJTdGFnZS5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmVVc2FnZS5oIgogI2lu
Y2x1ZGUgPFdlYkdQVS9XZWJHUFUuaD4KKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQ
VVRleHR1cmVJbXBsLmgKaW5kZXggMmIxOGY5YjY4ZDIzZmJiYjBlMzgyOTNhMWM5NWUwY2Y1OTdh
OTY2ZC4uMzM4M2VhMTM2OTRjYzlmMDc5NDUzMGUwOGIwYjJjMjRhNTZjZDhhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVUZXh0
dXJlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0lt
cGwvV2ViR1BVVGV4dHVyZUltcGwuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogCiAgICAg
V0dQVVRleHR1cmUgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCi0gICAg
UmVmPFRleHR1cmVWaWV3PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZp
ZXdEZXNjcmlwdG9yPiYpIGNvbnN0IGZpbmFsOworICAgIFJlZjxUZXh0dXJlVmlldz4gY3JlYXRl
Vmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mKSBmaW5hbDsK
IAogICAgIHZvaWQgZGVzdHJveSgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmgKaW5kZXggZTJkOWM2MWQw
ZWZjZjVhNmZjMzM3YmQ2YWNkOTE5Y2U5MTJiZTA3MS4uNTA3YzRhYWM0NzZkODFiZTM1MjlhMzhi
ODkxNjU2MTVlMDg2NGRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6
CiAgICAgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMoKSBjb25zdCB7IHJldHVybiBtX2xpbWl0czsg
fQogICAgIGJvb2wgaXNGYWxsYmFja0FkYXB0ZXIoKSBjb25zdCB7IHJldHVybiBtX2lzRmFsbGJh
Y2tBZGFwdGVyOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZp
Y2VEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoUmVmPERldmljZT4mJik+JiYpID0gMDsKIAogcHJvdGVjdGVkOgog
ICAgIEFkYXB0ZXIoU3RyaW5nJiYgbmFtZSwgU3VwcG9ydGVkRmVhdHVyZXMmIGZlYXR1cmVzLCBT
dXBwb3J0ZWRMaW1pdHMmIGxpbWl0cywgYm9vbCBpc0ZhbGxiYWNrQWRhcHRlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkZHJlc3NN
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRy
ZXNzTW9kZS5oCmluZGV4IDY3YmFkNWI5ZGY4OTU0YTQwNGY5NzBkZmY5ZTUzMGFlYWE1NzdjZDEu
LjRjYWRmYTY1ZGQ3MDBjYzBhMWE1OWZjNGQwYmMyOTMyNTc4MjhkZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkZHJlc3NNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVz
c01vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3Rk
aW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQ
VSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgQWRkcmVzc01vZGUgOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpB
ZGRyZXNzTW9kZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlOjpDbGFtcFRvRWRn
ZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlOjpSZXBlYXQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpBZGRyZXNzTW9kZTo6TWlycm9yUmVwZWF0CisgICAgPjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKaW5kZXggZmVkNWU4MWU2ODNhODU4ODU4
OTk5NzRiNGE2ZDQ4Yjc0MWE4NDRkOC4uMjAyMmI4MDcyYmI3NGQ3MGJmNDljZWIxZTlhZjY4YTY2
OTllMTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmxlbmRGYWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZhY3Rvci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtNDYsMyArNDcsMjYgQEAgZW51bSBjbGFz
cyBCbGVuZEZhY3RvciA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJH
UFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yLAorICAgICAgICBQQUw6OldlYkdQVTo6
QmxlbmRGYWN0b3I6Olplcm8sCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25l
LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6OlNyYywKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c1NyYywKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJs
ZW5kRmFjdG9yOjpTcmNBbHBoYSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpP
bmVNaW51c1NyY0FscGhhLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6OkRzdCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0RzdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpEc3RBbHBoYSwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OkJsZW5kRmFjdG9yOjpPbmVNaW51c0RzdEFscGhhLAorICAgICAgICBQQUw6OldlYkdQVTo6Qmxl
bmRGYWN0b3I6OlNyY0FscGhhU2F0dXJhdGVkLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRG
YWN0b3I6OkNvbnN0YW50LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6Ok9uZU1p
bnVzQ29uc3RhbnQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxl
bmRPcGVyYXRpb24uaAppbmRleCAxZjYwMGM4ZGFiY2FhNzU3MDMwZDU3MjE5MzhmNDBkNjQxMWFm
MjIwLi44NmEwYjlkZDljMzY4YTM5NTRiZjI3NGYxZTFkMTk5NTYxM2VhMWYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJsZW5kT3BlcmF0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUgewogCkBAIC0zOCwzICszOSwxOCBAQCBlbnVtIGNsYXNzIEJsZW5kT3BlcmF0
aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6
QmxlbmRPcGVyYXRpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAg
ICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpCbGVu
ZE9wZXJhdGlvbjo6QWRkLAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OlN1
YnRyYWN0LAorICAgICAgICBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OlJldmVyc2VTdWJ0
cmFjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpNaW4sCisgICAgICAg
IFBBTDo6V2ViR1BVOjpCbGVuZE9wZXJhdGlvbjo6TWF4CisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBlLmgKaW5kZXggMGEwYWQ2NmIw
MWQ0MzYwYTk3OGE3MGFlMDg1NmNhOTVmOTE3ZTNkNy4uNDQxYjcyOGQ2YTQyMDI5NjllMTcwMmFj
ZDMyM2FkNWQ3NTdmODRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYs
MyArMzcsMTYgQEAgZW51bSBjbGFzcyBCdWZmZXJCaW5kaW5nVHlwZSA6IHVpbnQ4X3QgewogfTsK
IAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJ1
ZmZlckJpbmRpbmdUeXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ1R5cGU6
OlVuaWZvcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZTo6U3RvcmFn
ZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlOjpSZWFkT25seVN0b3Jh
Z2UKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyVXNhZ2UuaApp
bmRleCA1NDAxMWY0MzM3MTVlNGRiMTllMmIwYWFiNWUyODFjODc3MTBiMzUyLi5kNTVlY2ZjNDY1
ZGM1ODg2MzNkN2MyY2U0NDU0MTc4ZTYzOGE2YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlclVzYWdlLmgKQEAg
LTMyLDcgKzMyLDYgQEAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKIHVzaW5nIEJ1ZmZlclVz
YWdlRmxhZ3MgPSB1aW50MzJfdDsKLQogY2xhc3MgQnVmZmVyVXNhZ2UgOiBwdWJsaWMgUmVmQ291
bnRlZDxCdWZmZXJVc2FnZT4gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgRmxhZ3ND
b25zdGFudCBNQVBfUkVBRCAgICAgID0gMHgwMDAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZh
c0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgKaW5kZXggMDkxY2FkYWI0MTI0OTdjOWM4ZDQ3ZjMwNThi
NDU4YzQ2N2FhY2IwMy4uNDQ4NDJmYzM5ZjlkZGYzMDllODI5YzExMjliZjRhMGIwZGQ0ZWJiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUs
MyArMzYsMTUgQEAgZW51bSBjbGFzcyBDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZSA6IHVpbnQ4
X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBv
c2l0aW5nQWxwaGFNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGU6Ok9wYXF1ZSwKKyAgICAgICAgUEFM
OjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlOjpQcmVtdWx0aXBsaWVkCisgICAg
PjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rpb24uaApp
bmRleCA2Y2JlYTNkNTg0Njk0YjA0NDNkZTdiZDQ1YjY4NDVhNzBiNDk5MzU4Li5iOGU3NDFiN2Ri
MDM2NTc2MjZhMjlkMjc3ZTliMDQ1ZTE0ZmI3NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rp
b24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50
PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7
CiAKQEAgLTQxLDMgKzQyLDIxIEBAIGVudW0gY2xhc3MgQ29tcGFyZUZ1bmN0aW9uIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0
aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OkNvbXBhcmVGdW5jdGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlv
bjo6TmV2ZXIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246Okxlc3MsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246OkVxdWFsLAorICAgICAgICBQQUw6
OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpMZXNzRXF1YWwsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpDb21wYXJlRnVuY3Rpb246OkdyZWF0ZXIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJl
RnVuY3Rpb246Ok5vdEVxdWFsLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9u
OjpHcmVhdGVyRXF1YWwsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb246OkFs
d2F5cworICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNv
bXBpbGF0aW9uTWVzc2FnZVR5cGUuaAppbmRleCBhNDYzNTI0NDFlYTc3ZGRhMjJkYmNmMmM4MjEx
ZTRjOTBlOTNhNDI5Li4zYTJmMDUwYjI3NDIyYjM3MjZjNDNkM2RlOTMzYmY1MWRjZDRlZDQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
b21waWxhdGlvbk1lc3NhZ2VUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzYsMyArMzcsMTYg
QEAgZW51bSBjbGFzcyBDb21waWxhdGlvbk1lc3NhZ2VUeXBlIDogdWludDhfdCB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpD
b21waWxhdGlvbk1lc3NhZ2VUeXBlLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25N
ZXNzYWdlVHlwZTo6RXJyb3IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3Nh
Z2VUeXBlOjpXYXJuaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdl
VHlwZTo6SW5mbworICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNz
VGltZXN0YW1wTG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCBmMDgxOWUwMTRj
ZDlkZGFiYWJmMGUzYmZiNmQzZmRkYTcwNjA4YmJjLi5lYzcxN2I3Y2I1YzQ5NTZlZDY4MzMwMGE0
MTg4MzkyN2MxYWE2ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1l
c3RhbXBMb2NhdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBB
TDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBDb21wdXRlUGFzc1Rp
bWVzdGFtcExvY2F0aW9uIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6Oldl
YkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbj4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVz
dGFtcExvY2F0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBM
b2NhdGlvbjo6QmVnaW5uaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1l
c3RhbXBMb2NhdGlvbjo6RW5kCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3Vs
bE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1
bGxNb2RlLmgKaW5kZXggOGU1Mjc3YmZmOWJmMGU1NjEyOGRhY2RkZjk2ODFkNjc5ZDdlNDkzMi4u
NGM4N2QwNzczOTFhY2Q2MTVkMDYxZWY1OTAxYTEwNWY3MGQ4MGQ5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+Cisj
aW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApA
QCAtMzYsMyArMzcsMTYgQEAgZW51bSBjbGFzcyBDdWxsTW9kZSA6IHVpbnQ4X3QgewogfTsKIAog
fSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkN1bGxNb2RlPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkN1bGxNb2RlLAorICAg
ICAgICBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6Ok5vbmUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpD
dWxsTW9kZTo6RnJvbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpDdWxsTW9kZTo6QmFjaworICAg
ID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24u
aAppbmRleCBhY2RiZmY2ZDg5NDlhMGVjMjk2ZGM1ZWNmMzc1MzJlMmVmYTAzY2ZkLi5iNDFlYzQw
NDI1MmU1YzI5ZmE3MTk3ZTk4OWRjODgyZDM0YzZhYTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0UmVhc29uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlTG9z
dFJlYXNvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBEZXZpY2VMb3N0UmVhc29uIDog
dWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RGV2aWNl
TG9zdFJlYXNvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBB
TDo6V2ViR1BVOjpEZXZpY2VMb3N0UmVhc29uLAorICAgICAgICBQQUw6OldlYkdQVTo6RGV2aWNl
TG9zdFJlYXNvbjo6RGVzdHJveWVkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RXJyb3JGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUVycm9yRmlsdGVyLmgKaW5kZXggODI2YmRhYjViYzFkOWY4NTVhOWY5MTJkMDJjOWVjNDU0
ZWE5ZGQ0MC4uZWVkZDg3MTRkNDhkMTczYzkwNTc1MzljMjk4YTFmZGYwMDY4MDY5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JG
aWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVFcnJvckZpbHRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBB
TDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBFcnJvckZpbHRlciA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkVycm9y
RmlsdGVyPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkVycm9yRmlsdGVyLAorICAgICAgICBQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXI6Ok91
dE9mTWVtb3J5LAorICAgICAgICBQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXI6OlZhbGlkYXRpb24K
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGZWF0dXJlTmFtZS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmVhdHVyZU5hbWUuaAppbmRl
eCAwZDU4NzBiYzgwOTEwYmM1OTNhZmFmZGM0MDNkNGU5OThlYjQ5MWQyLi42YTMzNTg5ZDg5NDlm
YTg0NzZjMTRkYjdmZDM1ODQ5YWZmNzNmMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGZWF0dXJlTmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC00Miwz
ICs0MywyMiBAQCBlbnVtIGNsYXNzIEZlYXR1cmVOYW1lIDogdWludDhfdCB7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWUsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6RGVwdGhDbGlwQ29udHJvbCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpEZXB0aDI0dW5vcm1TdGVuY2lsOCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpEZXB0aDMyZmxvYXRTdGVuY2lsOCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpUZXh0dXJlQ29tcHJlc3Npb25CYywKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpUZXh0dXJlQ29tcHJlc3Npb25FdGMyLAor
ICAgICAgICBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OlRleHR1cmVDb21wcmVzc2lvbkFzdGMs
CisgICAgICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6VGltZXN0YW1wUXVlcnksCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6SW5kaXJlY3RGaXJzdEluc3RhbmNlCisgICAg
PjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmlsdGVyTW9kZS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmlsdGVyTW9kZS5oCmluZGV4IDhiYzg4
MTIyMDVjZTgyYjVjODRjYTdlNGI1NTEzMmE2YWQxNjQ4ZTcuLjFhZmIzZmE1ZTUxMmZlZWUwMDk2
YzFlMWE5Y2EyMDFjYzlkYTNjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZpbHRlck1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNSwzICszNiwxNSBA
QCBlbnVtIGNsYXNzIEZpbHRlck1vZGUgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFBBTDo6V2ViR1BVOjpGaWx0ZXJNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZpbHRlck1vZGUsCisgICAgICAgIFBBTDo6
V2ViR1BVOjpGaWx0ZXJNb2RlOjpOZWFyZXN0LAorICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVy
TW9kZTo6TGluZWFyCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGcm9udEZh
Y2UuaAppbmRleCA3YzNhMDk1NmIzZDU1NmUxYzNjMmVmNmJkMTlmMTNhOWQ4ZTU5MGE3Li5mZjY1
YjEwMDdlZDM5MmE2MWNkNWIwMzRjMDYyYzJiZTYxMjUzN2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAg
LTM1LDMgKzM2LDE1IEBAIGVudW0gY2xhc3MgRnJvbnRGYWNlIDogdWludDhfdCB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6RnJvbnRGYWNlPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkZyb250RmFjZSwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OkZyb250RmFjZTo6Q0NXLAorICAgICAgICBQQUw6OldlYkdQVTo6
RnJvbnRGYWNlOjpDVworICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29w
eUV4dGVybmFsSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaAppbmRleCA2N2FmZTgxMWViOGQ4OGJiYzJh
OGJiOWVlNDU4Y2JkMGQxNjBlZmM0Li45NTVmMDk3ZGNmMDBkNDAxZDAwOTYwNzgwZmEzYjI2Njhj
ZTVmNGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCkBAIC0z
Miw3ICszMiw3IEBACiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiBzdHJ1Y3QgSW1hZ2VDb3B5
RXh0ZXJuYWxJbWFnZSB7Ci0gICAgLy8gc3RkOjp2YXJpYW50PFJlZlB0cjxJbWFnZUJpdG1hcD4s
IFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+IHNvdXJjZTsKKyAgICAvLyBGSVhNRTogSGFuZGxl
IHRoZSBzb3VyY2UuCiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4yRD4gb3JpZ2luOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
SW5kZXhGb3JtYXQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUluZGV4Rm9ybWF0LmgKaW5kZXggZTZkNGJjYjMyM2NhYjVjNzViNzMwYjAyOGMzNTgzYzdm
YjYwZWJhNi4uYWQ5NTZlNzJkZDg3Nzc0MjE1ZDViOTg2NTc0ZTE2ZWU4NmExMDBlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5kZXhG
b3JtYXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbmRleEZvcm1hdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBB
TDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBJbmRleEZvcm1hdCA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OkluZGV4
Rm9ybWF0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OkluZGV4Rm9ybWF0LAorICAgICAgICBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQ6OlVp
bnQxNiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OkluZGV4Rm9ybWF0OjpVaW50MzIKKyAgICA+Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUxvYWRPcC5oCmluZGV4IGQ4MWY4OWYwOWU5YjY2YTcz
YjE2MjExNjlmNDZhYTI0N2VlZWU5NGMuLmRjODI2MGQ3MzMwZDY4ZDg0ODVlYTc2OWYyZDBlYzBl
YTU5MDE0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUxvYWRPcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUxvYWRPcC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBMb2FkT3Ag
OiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpMb2Fk
T3A+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQ
VTo6TG9hZE9wLAorICAgICAgICBQQUw6OldlYkdQVTo6TG9hZE9wOjpMb2FkCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTWFwTW9kZS5oCmluZGV4IDZjZDE5ZDUzNzZlZjcxYmQz
NTEwNTViOTIxMzNiZDMxYjZiMmU5YTguLmYxN2ZjNzc2MzViZmZlZjcyMDYxM2NlNWMwM2NkYjAz
MDU5MThhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVU1hcE1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVNYXBNb2RlLmgKQEAgLTMyLDcgKzMyLDYgQEAKIG5hbWVzcGFjZSBQQUw6
OldlYkdQVSB7CiAKIHVzaW5nIE1hcE1vZGVGbGFncyA9IHVpbnQzMl90OwotCiBjbGFzcyBNYXBN
b2RlIDogcHVibGljIFJlZkNvdW50ZWQ8TWFwTW9kZT4gewogcHVibGljOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgRmxhZ3NDb25zdGFudCBSRUFEICA9IDB4MDAwMTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGlj
TmFtZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlw
ZWxpbmVTdGF0aXN0aWNOYW1lLmgKaW5kZXggMmU4YWVlYTkyOTdhNzNlYTJhOGZjZWU0MWE1Nzcw
ODE5MDA2ZDk5NC4uYmY5M2Y2NzkwMDRhZGM2MDMwNzU5ZTVlYzM5Mzc4YWRkNWQ5NGM2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlw
ZWxpbmVTdGF0aXN0aWNOYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRy
YWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zOCwzICszOSwxOCBAQCBl
bnVtIGNsYXNzIFBpcGVsaW5lU3RhdGlzdGljTmFtZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpQaXBlbGlu
ZVN0YXRpc3RpY05hbWUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3RpY05h
bWU6OlZlcnRleFNoYWRlckludm9jYXRpb25zLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxp
bmVTdGF0aXN0aWNOYW1lOjpDbGlwcGVySW52b2NhdGlvbnMsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpQaXBlbGluZVN0YXRpc3RpY05hbWU6OkNsaXBwZXJQcmltaXRpdmVzT3V0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpGcmFnbWVudFNoYWRlckludm9jYXRp
b25zLAorICAgICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDb21wdXRl
U2hhZGVySW52b2NhdGlvbnMKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQb3dl
clByZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVBvd2VyUHJlZmVyZW5jZS5oCmluZGV4IDE2NTM1YzYxZmIxNGIyYzAyZjYwMzJkY2Q5Y2My
ODBjOTRhNjEyNDAuLjMwNjA4OTdjZjllYTMyZDQ3MmRhODYyODZlYTU2ODk4MjQ3MGZlZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBv
d2VyUHJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVBvd2VyUHJlZmVyZW5jZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAog
bmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAgZW51bSBjbGFzcyBQ
b3dlclByZWZlcmVuY2UgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBB
TDo6V2ViR1BVOjpQb3dlclByZWZlcmVuY2U+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlLAorICAgICAgICBQQUw6
OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlciwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmgKaW5kZXggOTQz
MDA4MDQwMDJhNmMwMmQxOGVlNzFjNWE4MzMxYzcwMGFkZmQ1Ny4uZmE3ZDFlMWVmNWJjMzgyZTUz
YjdmN2NmMjUzNmYzNGRkMjk4NTFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JT
cGFjZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRp
bnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BV
IHsKIApAQCAtMzQsMyArMzUsMTQgQEAgZW51bSBjbGFzcyBQcmVkZWZpbmVkQ29sb3JTcGFjZSA6
IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlByZWRl
ZmluZWRDb2xvclNwYWNlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNlLAorICAgICAgICBQQUw6OldlYkdQ
VTo6UHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0IKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVQcmltaXRpdmVUb3BvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaAppbmRleCBlNGQwZjJhZTIyYmM2
NDVjNDAzMmE2OTUxZmE0NWQ3NTNhNWFlNjBjLi5iNTBjZjkzMDRhYjJlMTQyNDBlOGE3NDhkNGEw
Njk2M2Q0ZDZmNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVQcmltaXRpdmVUb3BvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVRvcG9sb2d5LmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3
dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zOCwzICsz
OSwxOCBAQCBlbnVtIGNsYXNzIFByaW1pdGl2ZVRvcG9sb2d5IDogdWludDhfdCB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0
aXZlVG9wb2xvZ3ksCisgICAgICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neTo6UG9p
bnRMaXN0LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OkxpbmVMaXN0
LAorICAgICAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OkxpbmVTdHJpcCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5OjpUcmlhbmdsZUxpc3QsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neTo6VHJpYW5nbGVTdHJpcAorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmgKaW5kZXggMDU5MWZiMzU0
NmFmZTYzMzA5YTc5NjdkNWY5MDQwOWQ4NzcxZDU0ZS4uY2MzMGQ0ODgzZmYyZGUwNmVkOWQ4YmM4
Yzk5MmM1ZGI4MWM2M2RlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNiwzICszNywxNiBAQCBlbnVt
IGNsYXNzIFF1ZXJ5VHlwZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpX
ZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
UEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgICAgIFBBTDo6V2ViR1BVOjpRdWVyeVR5cGUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpR
dWVyeVR5cGU6Ok9jY2x1c2lvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZTo6UGlw
ZWxpbmVTdGF0aXN0aWNzLAorICAgICAgICBQQUw6OldlYkdQVTo6UXVlcnlUeXBlOjpUaW1lc3Rh
bXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAppbmRleCBlMTZlOTNk
ZTE2ODJlNGI1ODlmMjBhOTRlZWFkODYzOWY2MWFmZGYwLi42ZjhmOGY4MTBiOGQwMWExMjhjNmJk
ZWZjZGUzMmNmNWE0MDkyMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgiCiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VE
YXRhTGF5b3V0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgorI2luY2x1ZGUg
PGNzdGRpbnQ+CiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDxvcHRpb25hbD4KICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIu
aAppbmRleCA1YTEwYzVmMjE2NmQwYzU4Yjc0MjQ0ZmNjZGY4MjA1YWM4NjU1NmNkLi4yZDc1ZmZj
ZThiYjgxMDQ0YzkwZmMwNTgyN2VkMDljNjBjMWI1ZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVSW5kZXhG
b3JtYXQuaCIKICNpbmNsdWRlICJXZWJHUFVJbnRlZ3JhbFR5cGVzLmgiCiAjaW5jbHVkZSAiV2Vi
R1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVk
ZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaAppbmRleCAxZTc2YmE3N2I4NDBh
MTA3ZjZjMTE2MTJlODI3M2JmMzIzZWU3MzJkLi43MzUyZWExZGQ4Yjk1M2IyNWY1ODI0NjZlYWE3
Nzk2ZWU1ZGYyMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJXZWJHUFVDb2xvci5oIgogI2luY2x1ZGUgIldlYkdQVUluZGV4
Rm9ybWF0LmgiCiAjaW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgorI2luY2x1ZGUgPGNz
dGRpbnQ+CiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBM
b2NhdGlvbi5oCmluZGV4IGFiNWZhMDE5ODk2YWQwNDhkNzUyMmQwMDlhMzdiOGMxNGQzM2VlZDEu
LjIwMzg3NjhmNDM1NzZiMTc2MThiNDIzN2I3MmQ5YTkzNzAyMWYxY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1l
c3RhbXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KIAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzUsMyArMzYsMTUgQEAg
ZW51bSBjbGFzcyBSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24gOiB1aW50OF90IHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wTG9j
YXRpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLAorICAgICAgICBQQUw6OldlYkdQVTo6
UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpCZWdpbm5pbmcsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb246OkVuZAorICAgID47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKaW5kZXggMThj
YWRjMGUwNzA2MDdhNDQxNTIyMjE3ZDEyMWZiNWI0MTAyZmYwMC4uYTQ5MmNlNjZkZjVhMTM0ZDBl
MDhmYTM1NDE4NDY4MmMyNzNjM2YzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBl
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4K
KyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewog
CkBAIC0zNiwzICszNywxNiBAQCBlbnVtIGNsYXNzIFNhbXBsZXJCaW5kaW5nVHlwZSA6IHVpbnQ4
X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5k
aW5nVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6
V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTYW1wbGVy
QmluZGluZ1R5cGU6OkZpbHRlcmluZywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5k
aW5nVHlwZTo6Tm9uRmlsdGVyaW5nLAorICAgICAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRp
bmdUeXBlOjpDb21wYXJpc29uCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3Rl
bmNpbE9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oCmluZGV4IDkwNjliYjdlZjJkNDJkZTZkNzliY2I4MWRh
M2E3MTk0NDMwMmU0NDkuLmJhMGM2ZjU2YmU4OTU4OTRlYmE5YmViMjQ3ZmU5ZTczMDc5MTMzMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVN0ZW5jaWxPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5o
PgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC00MSwzICs0MiwyMSBAQCBlbnVtIGNs
YXNzIFN0ZW5jaWxPcGVyYXRpb24gOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24sCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpLZWVwLAorICAgICAgICBQQUw6Oldl
YkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6WmVybywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5j
aWxPcGVyYXRpb246OlJlcGxhY2UsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0
aW9uOjpJbnZlcnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpJbmNy
ZW1lbnRDbGFtcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246OkRlY3Jl
bWVudENsYW1wLAorICAgICAgICBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVt
ZW50V3JhcCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246OkRlY3JlbWVu
dFdyYXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFj
Y2Vzcy5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3Rv
cmFnZVRleHR1cmVBY2Nlc3MuaAppbmRleCA3MmI3NjgxNWNkZWNhMDc0ZjViODRlYTgyNTAwOWUy
YzlkNzVlODE2Li5lNDdlN2I5ZjRhOTEwN2Y0ZjhmMTIxNjNmMmU3MWFmOTYyNDE2OGQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9y
YWdlVGV4dHVyZUFjY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNCwzICszNSwxNCBAQCBlbnVt
IGNsYXNzIFN0b3JhZ2VUZXh0dXJlQWNjZXNzIDogdWludDhfdCB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1
cmVBY2Nlc3MsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUFjY2Vzczo6V3Jp
dGVPbmx5CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmVPcC5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmVPcC5oCmluZGV4
IDk3MGNiZmJkZDJlZjM0NWI4OTA5YmZjNWZjNjc1NjAzNzU4OTNkMjEuLjk5NDRkOGJjMjAyOTFj
ZGU4ODVmMjRhYjViMmQ5ODM1ZjdkNzQ0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yZU9wLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC0zNSwzICszNiwxNSBA
QCBlbnVtIGNsYXNzIFN0b3JlT3AgOiB1aW50OF90IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBB
TDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFBBTDo6V2ViR1BVOjpTdG9yZU9wPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0b3JlT3AsCisgICAgICAgIFBBTDo6V2ViR1BVOjpT
dG9yZU9wOjpTdG9yZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlN0b3JlT3A6OkRpc2NhcmQKKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlLmgKaW5kZXggMDVjOTJlZTA4
Y2JiZTc0OGMwZjYxY2U1NTc1NTQ0ZjNiOTg0MzZiNy4uZDUyZWQxMmE4MjEyM2QwMTc0N2E2ZjU1
NzQ3ODg1NzIwNmFhNzU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHNldExhYmVsSW50ZXJuYWwobV9sYWJlbCk7CiAgICAgfQogCi0gICAgdmlydHVh
bCBSZWY8VGV4dHVyZVZpZXc+IGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0dXJl
Vmlld0Rlc2NyaXB0b3I+JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmPFRleHR1cmVWaWV3
PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgPSAwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
QXNwZWN0LmgKaW5kZXggNzliZWEwY2Q4YzE3ZTljMTg2MDRmNDExNWNlYzFkOGNhZDhhNWJiYS4u
NTYxOGNmZWI3NTE4OWRkM2I2Y2Q2Y2QzODQ4OTNhOGFkNjVhY2RlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVBc3BlY3QuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CiAKQEAgLTM2LDMgKzM3LDE2IEBAIGVudW0gY2xhc3MgVGV4dHVyZUFzcGVjdCA6IHVp
bnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlRleHR1cmVB
c3BlY3Q+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZUFzcGVjdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q6
OkFsbCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q6OlN0ZW5jaWxPbmx5LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdDo6RGVwdGhPbmx5CisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oCmluZGV4
IDQ3NTQxMDdlZTViMzgxOWNjOWM4MmY4NDdkZTZiYzRjZGUwZDE5ZGYuLjUzYTJlNzllY2U3YjA1
MmU5YTVkZjQ2MjFkNTQwMjNiMjlmMzQ1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGltZW5zaW9u
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4K
KyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewog
CkBAIC0zNiwzICszNywxNiBAQCBlbnVtIGNsYXNzIFRleHR1cmVEaW1lbnNpb24gOiB1aW50OF90
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5z
aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVEaW1lbnNpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5z
aW9uOjpfMWQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uOjpfMmQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uOjpfM2QKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRm9ybWF0LmgKaW5kZXggM2M4YWE2YzQ4
NTNhODU0MDI4NmUzODBiMTlmY2YxNjE3ZmEzMmQ1Zi4uNjI1OTQ2MDA1ZjBlODYzYWY5MDMyODE2
NWIzODg5MTJkZDc1MDI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTE1MywzICsxNTQs
MTA4IEBAIGVudW0gY2xhc3MgVGV4dHVyZUZvcm1hdCA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgUEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4dW5vcm0sCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSOHNub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6Ujh1aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6UjhzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2dWludCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIxNnNpbnQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSMTZmbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OlJnOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6Umc4c25vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzh1
aW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4c2ludCwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMnVpbnQsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpSMzJzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6UjMyZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpS
ZzE2dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMTZzaW50LAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxNmZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTh1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OlJnYmE4dW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6UmdiYThzbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnYmE4dWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YmE4c2ludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJncmE4dW5vcm0s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtU1JHQiwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYjllNXVmbG9hdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYjEwYTJ1bm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMTFiMTB1ZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpSZzMydWludCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnMzJzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umcz
MmZsb2F0LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTE2dWludCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmExNnNpbnQsCisgICAgICAg
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMTZmbG9hdCwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMnVpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpSZ2JhMzJzaW50LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6UmdiYTMyZmxvYXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpT
dGVuY2lsOCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMTZ1bm9y
bSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMjRwbHVzLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgyNHBsdXNTdGVuY2lsOCwKKyAg
ICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMzJmbG9hdCwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjMVJnYmFVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjMVJnYmFVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpCYzJSZ2JhVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpCYzJSZ2JhVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4
dHVyZUZvcm1hdDo6QmMzUmdiYVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6QmMzUmdiYVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkJjNFJVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjNFJT
bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjNVJnVW5vcm0sCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzVSZ1Nub3JtLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmM2aFJnYlVmbG9hdCwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjNmhSZ2JGbG9hdCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OkJjN1JnYmFVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkJjN1JnYmFVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpFdGMyUmdiOHVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6RXRjMlJnYjh1bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpFdGMyUmdiOGExdW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpF
dGMyUmdiOGExdW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
RXRjMlJnYmE4dW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFdGMy
UmdiYTh1bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFYWNS
MTF1bm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkVhY1IxMXNub3Jt
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RWFjUmcxMXVub3JtLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RWFjUmcxMXNub3JtLAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzR4NFVub3JtLAorICAgICAgICBQQUw6Oldl
YkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzR4NFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJH
UFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM1eDRVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OkFzdGM1eDRVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0OjpBc3RjNXg1VW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpBc3RjNXg1VW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6QXN0YzZ4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0
YzZ4NVVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2
eDZVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM2eDZVbm9y
bVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg1VW5vcm0s
CisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg1VW5vcm1TUkdCLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NlVub3JtLAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NlVub3JtU1JHQiwKKyAgICAgICAg
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM4eDhVbm9ybSwKKyAgICAgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM4eDhVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4NVVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpBc3RjMTB4NlVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVy
ZUZvcm1hdDo6QXN0YzEweDZVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Rm9ybWF0OjpBc3RjMTB4OFVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6QXN0YzEweDhVbm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpBc3RjMTB4MTBVbm9ybSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFz
dGMxMHgxMFVub3JtU1JHQiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFz
dGMxMngxMFVub3JtLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEy
eDEwVW5vcm1TUkdCLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEy
eDEyVW5vcm0sCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTJ4MTJV
bm9ybVNSR0IsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDI0dW5v
cm1TdGVuY2lsOCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMzJm
bG9hdFN0ZW5jaWw4CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNh
bXBsZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVRleHR1cmVTYW1wbGVUeXBlLmgKaW5kZXggMzhkZDM0ZGQ5MzJkMjRhZjFkYmU5YzQyZGYyZTlk
NzBiZDVkOGJkNy4uMzRhMDFjYWIyMGE1MjU0ZTAwYjMzODI4OGJjYTI2MDk3NDAzZWJlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4
dHVyZVNhbXBsZVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIApAQCAtMzgsMyArMzksMTggQEAgZW51bSBjbGFz
cyBUZXh0dXJlU2FtcGxlVHlwZSA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlLAorICAg
ICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OkZsb2F0LAorICAgICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OlVuZmlsdGVyYWJsZUZsb2F0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5cGU6OkRlcHRoLAorICAgICAgICBQQUw6OldlYkdQ
VTo6VGV4dHVyZVNhbXBsZVR5cGU6OlNpbnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJl
U2FtcGxlVHlwZTo6VWludAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGltZW5zaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oCmluZGV4IGIzNWMwNDAyM2YxZGM2OGIxYWFl
ZWQ4NGViNGJlNWM1ZWY1NTMzYjkuLmQzNmVlNDVjOGE4NjUwZTRhNmExM2JlNzI0OWVlMzM4YjNk
MDM0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVRleHR1cmVWaWV3RGltZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaApAQCAtMjYsNiAr
MjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHd0
Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKQEAgLTM5LDMgKzQw
LDE5IEBAIGVudW0gY2xhc3MgVGV4dHVyZVZpZXdEaW1lbnNpb24gOiB1aW50OF90IHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbj4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlVmlld0RpbWVuc2lvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGlt
ZW5zaW9uOjpfMWQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6
XzJkLAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZEFycmF5
LAorICAgICAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246OkN1YmUsCisgICAg
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6Q3ViZUFycmF5LAorICAgICAg
ICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8zZAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0LmgKaW5kZXggOTRlYWM0MTM4YTE2
ZTllZTZkZGUwMDg2YTE4Yzc2NmJjY2M0OTc5Yy4uMmEwMTM1MzRjY2QzMTFhZTgxNzBjZWIyNmJk
Y2RhMzIwYjU2NTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx3dGYvRW51bVRy
YWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCkBAIC02MywzICs2NCw0MyBAQCBl
bnVtIGNsYXNzIFZlcnRleEZvcm1hdCA6IHVpbnQ4X3QgewogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8UEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQ4eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpW
ZXJ0ZXhGb3JtYXQ6OlVpbnQ4eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNpbnQ4eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQ4eDQsCisg
ICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtOHgyLAorICAgICAgICBQQUw6
OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVbm9ybTh4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZl
cnRleEZvcm1hdDo6U25vcm04eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNub3JtOHg0LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50MTZ4MiwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDE2eDQsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQxNngyLAorICAgICAgICBQQUw6OldlYkdQVTo6
VmVydGV4Rm9ybWF0OjpTaW50MTZ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1h
dDo6VW5vcm0xNngyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVbm9ybTE2
eDQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtMTZ4MiwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U25vcm0xNng0LAorICAgICAgICBQQUw6Oldl
YkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDE2eDIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0
ZXhGb3JtYXQ6OkZsb2F0MTZ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6
RmxvYXQzMiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQzMngyLAor
ICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDMyeDMsCisgICAgICAgIFBB
TDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OkZsb2F0MzJ4NCwKKyAgICAgICAgUEFMOjpXZWJHUFU6
OlZlcnRleEZvcm1hdDo6VWludDMyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0
OjpVaW50MzJ4MiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyeDMs
CisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMng0LAorICAgICAgICBQ
QUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzIsCisgICAgICAgIFBBTDo6V2ViR1BVOjpW
ZXJ0ZXhGb3JtYXQ6OlNpbnQzMngyLAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0
OjpTaW50MzJ4MywKKyAgICAgICAgUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDQK
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4U3RlcE1vZGUu
aAppbmRleCA2NGQxMmM5ODA4N2U4YjU0NjhjN2Q5OTM0MjA0ODcxNDYzNDkzMzE5Li40MWIzMDY5
Y2YwYmYzNDljNjcxYzExY2RmOGJkMWViYWYzZjM5YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBN
b2RlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGlu
dD4KKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUg
ewogCkBAIC0zNSwzICszNiwxNSBAQCBlbnVtIGNsYXNzIFZlcnRleFN0ZXBNb2RlIDogdWludDhf
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1v
ZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBQQUw6OldlYkdQ
VTo6VmVydGV4U3RlcE1vZGUsCisgICAgICAgIFBBTDo6V2ViR1BVOjpWZXJ0ZXhTdGVwTW9kZTo6
VmVydGV4LAorICAgICAgICBQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU6Okluc3RhbmNlCisg
ICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQ
VS9XR1NMVW5pdFRlc3RzL1dHU0xVbml0VGVzdHMubW0gYi9Tb3VyY2UvV2ViR1BVL1dHU0xVbml0
VGVzdHMvV0dTTFVuaXRUZXN0cy5tbQppbmRleCA3M2Q3YzdkYzc5YmU0ZmNjMGZkMDdlODU4M2Fm
NzBkMDhiZjBjODE4Li5mMzc0YmFkNjMzOTRjNzNmODk5ZWFmNWQ2ZGJmYjBjYTZiN2RmYzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dHU0xVbml0VGVzdHMvV0dTTFVuaXRUZXN0cy5tbQor
KysgYi9Tb3VyY2UvV2ViR1BVL1dHU0xVbml0VGVzdHMvV0dTTFVuaXRUZXN0cy5tbQpAQCAtMjUs
NiArMjUsNyBAQAogCiAjaW1wb3J0IDxYQ1Rlc3QvWENUZXN0Lmg+CiAjaW1wb3J0IDx2ZWN0b3I+
CisjaW1wb3J0IDx3dGYvRGF0YUxvZy5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCiBAaW50
ZXJmYWNlIFdHU0xVbml0VGVzdHMgOiBYQ1Rlc3RDYXNlCkBAIC0zNCw2ICszNSw3IEBACiBAaW1w
bGVtZW50YXRpb24gV0dTTFVuaXRUZXN0cwogCiAtICh2b2lkKXRlc3RFeGFtcGxlIHsKKyAgICBk
YXRhTG9nKCJhc2RmXG4iKTsKICAgICBWZWN0b3I8aW50PiB4IHsgMiwgMywgfTsKICAgICBWZWN0
b3I8aW50PiB5OwogICAgIHkuYXBwZW5kKDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggN2Q2MzQ1
MzRlY2VkOTk3MGY5ZmViNmE2YmZiOTRkMDM4NDNjMDNmNC4uYzMyOTc0YTg0YjJhNjY5NDA3Mzhm
MGQ0ZjNjMmJmOWU2MTBiYzAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xNSw2ICsxNSw3IEBA
IHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9IgogICAg
ICIke1dFQktJVF9ESVJ9L0dQVVByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vR1BVUHJvY2Vz
cy9ncmFwaGljcyIKKyAgICAiJHtXRUJLSVRfRElSfS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VSIKICAgICAiJHtXRUJLSVRfRElSfS9HUFVQcm9jZXNzL21lZGlhIgogICAgICIke1dFQktJVF9E
SVJ9L0dQVVByb2Nlc3Mvd2VicnRjIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNz
IgpAQCAtMTM2LDYgKzEzNywyOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAg
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTAogICAgIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogCisgICAgR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJpbmRHcm91cAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJp
bmRHcm91cExheW91dAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZl
cgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIKKyAg
ICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2RlcgorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2RlcgorICAgIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZQorICAgIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBp
cGVsaW5lTGF5b3V0CisgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlT
ZXQKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZQorICAgIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZQorICAgIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIKKyAgICBHUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2RlcgorICAgIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lCisgICAgR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlcgorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVNoYWRlck1vZHVsZQorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVRleHR1cmUKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmll
dworCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcgog
ICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkKICAgICBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDNkZjk4YTM1MGQ4ZDQ3NGM1MjdkOWMyNDkx
MTFjNGJlNTBlYmFkNDAuLjc5OWFkNzViMmExYWIyMTBkMDgxZDU5ZmQ1YjRiMDJkOGI2ZGFlYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAg
LTI0LDYgKzI0LDI4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHQubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1
ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4KKyQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4KKyQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVy
ZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlR1BVLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVQaXBlbGluZUxheW91dC5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVlcnlTZXQubWVzc2FnZXMuaW4KKyQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLm1lc3Nh
Z2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVy
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVSZW5kZXJQaXBlbGluZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0
dXJlLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAppbmRleCAxZjI2NjY4NDAwYWY5MjEyZDAwYzcxYWVhMGI1ODVhMDcwMjNjYjlhLi5h
NjVmYzM2MTg0Y2ZmOGY3NzUyZDY4NTI3OTg2MTU0YjZhZjgwMWM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2ICsxNTQsOSBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdlcwogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
clByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBZGFwdGVyTWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQWRh
cHRlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3Nh
Z2VzLmgKQEAgLTE4NSw2ICsxODgsMTUgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXMKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQcm94eU1l
c3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVCaW5kR3JvdXBMYXlvdXRN
ZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QmluZEdyb3VwTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQmluZEdyb3VwTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUJ1ZmZlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUJ1ZmZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMu
aApAQCAtMjA2LDkgKzIxOCwzMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDRE1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRCdWZm
ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVDb21tYW5kQnVmZmVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQ29tbWFuZEVuY29kZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21tYW5kRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21w
dXRlUGFzc0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXJNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDb21w
dXRlUGFzc0VuY29kZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
Q29tcHV0ZVBpcGVsaW5lTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURldmljZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRXh0ZXJu
YWxUZXh0dXJlTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VSZWNl
aXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUdQVU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdQVU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNl
aXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlc1JlcGxp
ZXMuaApAQCAtMjgyLDEyICszMTUsMzMgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VzUmVwbGkKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lz
dHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVQaXBlbGluZUxheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVBpcGVsaW5lTGF5b3V0TWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
UGlwZWxpbmVMYXlvdXRNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUXVlcnlTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVRdWVyeVNl
dE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVF1ZXJ5U2V0TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVF1ZXVlTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUXVldWVNZXNz
YWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVRdWV1ZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVS
ZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlc1Jl
cGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW1vdGVDb21tYW5k
TGlzdGVuZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5TWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyTWVz
c2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJCdW5kbGVNZXNzYWdlc1JlcGxpZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyUGFz
c0VuY29kZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlck1lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlclBpcGVsaW5lTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyUGlw
ZWxpbmVNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVSZW5kZXJQaXBlbGluZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVz
c2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdl
c1JlcGxpZXMuaApAQCAtMzAwLDE1ICszNTQsMjcgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWcK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlU2FtcGxlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNoYWRlck1v
ZHVsZU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRl
eHRUcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlTWVz
c2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlVGV4dHVyZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHR1cmVW
aWV3TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVz
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1ZjVmNDczMDk2M2RiNjk1NWVlOWI0
MDkzMTNkY2IwNDBmM2M5Njg4Li5kZGU1YzYzZmUzZjRiMzE1Mjk3ZGI0YjY4NDg5YzI5ZGU1YmJh
NDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDcsNiArMjQ3LDI4IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlciBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
IFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMIFwKKwlHUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCaW5kR3JvdXAgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJpbmRHcm91cExheW91dCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQnVmZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVm
ZmVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2RlciBc
CisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIFwK
KwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUgXAorCUdQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZSBcCisJR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVHUFUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBp
cGVsaW5lTGF5b3V0IFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNl
dCBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUgXAorCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZSBcCisJR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciBcCisJR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgXAorCUdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVTYW1wbGVyIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVT
aGFkZXJNb2R1bGUgXAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUg
XAorCUdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3IFwKIAlHUFVQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eSBcCiAJR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBcCiAJR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTA0MDlhOWM0NjE0YTU0NjI0YWZkZmFhYTBlMmYxMzk1ZjQ3NjM1OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QWRhcHRlci5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBZGFwdGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2Vi
R1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgiCisj
aW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVBZGFwdGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVB
ZGFwdGVyOjpSZW1vdGVBZGFwdGVyKFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBhZGFwdGVyLCBXZWJH
UFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYWRhcHRlcikKKyAg
ICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVBZGFwdGVyOjp+UmVt
b3RlQWRhcHRlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZShj
b25zdCBXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkdQVTo6U3VwcG9y
dGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYgY2FsbGJhY2spCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEhBVkUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUwZjM3ZTdlNDY3MDk4YTE3NmZlNGM0MDc4MzE0OWEwYzFkMzc3ZTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUFkYXB0ZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgUEFMOjpX
ZWJHUFUgeworY2xhc3MgQWRhcHRlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVz
cGFjZSBXZWJHUFUgeworc3RydWN0IERldmljZURlc2NyaXB0b3I7CitjbGFzcyBPYmplY3RIZWFw
Oworc3RydWN0IFN1cHBvcnRlZEZlYXR1cmVzOworc3RydWN0IFN1cHBvcnRlZExpbWl0czsKK30K
KworY2xhc3MgUmVtb3RlQWRhcHRlciBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VS
ZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVBZGFwdGVyPiBjcmVhdGUo
UEFMOjpXZWJHUFU6OkFkYXB0ZXImIGFkYXB0ZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0
SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUFkYXB0ZXIo
YWRhcHRlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUFkYXB0
ZXIoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJl
bW90ZUFkYXB0ZXIoUEFMOjpXZWJHUFU6OkFkYXB0ZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsK
KworICAgIFJlbW90ZUFkYXB0ZXIoY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVsZXRlOworICAg
IFJlbW90ZUFkYXB0ZXIoUmVtb3RlQWRhcHRlciYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVBZGFw
dGVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQWRhcHRlciYpID0gZGVsZXRlOworICAgIFJlbW90
ZUFkYXB0ZXImIG9wZXJhdG9yPShSZW1vdGVBZGFwdGVyJiYpID0gZGVsZXRlOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNl
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3Qg
V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllciwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBw
b3J0ZWRMaW1pdHMmJik+JiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpBZGFwdGVyPiBtX2Jh
Y2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUFkYXB0ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTEzM2FhNmUxY2M2
YjUzOWEwNDllNzQ1NjU5M2VmMDM4YTgzNGM4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
bWVzc2FnZXMgLT4gUmVtb3RlQWRhcHRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9p
ZCBSZXF1ZXN0RGV2aWNlKFdlYktpdDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yIGRldmljZURl
c2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoV2ViS2l0
OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRlZEZlYXR1cmVzLCBXZWJLaXQ6Oldl
YkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0cykgU3luY2hyb25vdXMKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZUJpbmRHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcxMGE1NDU5NWU2YjRi
NDIwYWIxMDkyODMzZjcxOGM0OTEyMzBiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmNwcApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bW90ZUJpbmRHcm91cC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCaW5kR3JvdXA6OlJl
bW90ZUJpbmRHcm91cChQQUw6OldlYkdQVTo6QmluZEdyb3VwJiBiaW5kR3JvdXAsIFdlYkdQVTo6
T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhiaW5kR3JvdXApCisgICAg
LCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQmluZEdyb3VwOjp+UmVt
b3RlQmluZEdyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVCaW5kR3JvdXA6OnNldExhYmVsKFN0
cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5kR3Jv
dXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmlu
ZEdyb3VwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNkMTBkZjQxNTI4YWQxMjJhYWEwM2JlNzZhNzgwM2FiZDhh
YjgxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3Ry
ZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIEJpbmRHcm91cDsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xh
c3MgUmVtb3RlQmluZEdyb3VwIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2Vp
dmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUJpbmRHcm91cD4gY3JlYXRlKFBB
TDo6V2ViR1BVOjpCaW5kR3JvdXAmIGJpbmRHcm91cCwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmpl
Y3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQmluZEdy
b3VwKGJpbmRHcm91cCwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90
ZUJpbmRHcm91cCgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOwor
CisgICAgUmVtb3RlQmluZEdyb3VwKFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmLCBXZWJHUFU6Ok9i
amVjdEhlYXAmKTsKKworICAgIFJlbW90ZUJpbmRHcm91cChjb25zdCBSZW1vdGVCaW5kR3JvdXAm
KSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXAoUmVtb3RlQmluZEdyb3VwJiYpID0gZGVs
ZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUJpbmRHcm91
cCYpID0gZGVsZXRlOworICAgIFJlbW90ZUJpbmRHcm91cCYgb3BlcmF0b3I9KFJlbW90ZUJpbmRH
cm91cCYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBD
OjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisg
ICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkJpbmRH
cm91cD4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVh
cDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43ZDdmOTQxYWQ2MmM5ODUwNzNlYWJmZDMzYzU1Y2MxZGRmYzNlNmE1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCaW5k
R3JvdXAubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAq
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUJpbmRHcm91cCBOb3RSZWZDb3VudGVk
IFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVCaW5kR3JvdXBMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVCaW5kR3JvdXBMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMGYwZTExZTc3
NDllOTk5ZjE0MTY3MWIyNWM4MGMzZDU4NjhjYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5j
cHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVCaW5kR3JvdXBMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVtb3RlQmluZEdyb3VwTGF5b3V0OjpSZW1vdGVCaW5kR3JvdXBMYXlvdXQoUEFMOjpXZWJH
UFU6OkJpbmRHcm91cExheW91dCYgYmluZEdyb3VwTGF5b3V0LCBXZWJHUFU6Ok9iamVjdEhlYXAm
IG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoYmluZEdyb3VwTGF5b3V0KQorICAgICwgbV9v
YmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUJpbmRHcm91cExheW91dDo6flJl
bW90ZUJpbmRHcm91cExheW91dCgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQmluZEdyb3VwTGF5b3V0
OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZmRhY2FlYTJh
NTQzOWQxY2JlNzFjNmE4ZmIzZTE5YzgxODU4NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJpbmRHcm91cExheW91dC5o
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFz
cyBCaW5kR3JvdXBMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2Ug
V2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUJpbmRHcm91cExh
eW91dCBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZW1vdGVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShQQUw6OldlYkdQ
VTo6QmluZEdyb3VwTGF5b3V0JiBiaW5kR3JvdXBMYXlvdXQsIFdlYkdQVTo6T2JqZWN0SGVhcCYg
b2JqZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUJp
bmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIH5SZW1vdGVCaW5kR3JvdXBMYXlvdXQoKTsKKworcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90ZUJpbmRHcm91cExheW91dChQQUw6Oldl
YkdQVTo6QmluZEdyb3VwTGF5b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1v
dGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgUmVtb3RlQmluZEdyb3VwTGF5b3V0JikgPSBkZWxldGU7
CisgICAgUmVtb3RlQmluZEdyb3VwTGF5b3V0KFJlbW90ZUJpbmRHcm91cExheW91dCYmKSA9IGRl
bGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVC
aW5kR3JvdXBMYXlvdXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVCaW5kR3JvdXBMYXlvdXQmIG9w
ZXJhdG9yPShSZW1vdGVCaW5kR3JvdXBMYXlvdXQmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRp
ZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+IG1fYmFja2luZzsKKyAgICBSZWY8
V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdlY2QyOTQ2NDk0
OGI5Yzk4MjU2MWU3M2ZjMjhiZmU1MjYzNzA2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1l
c3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQgTm90UmVmQ291bnRlZCBT
dHJlYW0geworICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmMyNmU0YjU4ODllMDgzMTNkNmE3YjkzZjdlZDE2
NGRmNTZlYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQnVmZmVyLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVCdWZmZXI6OlJlbW90ZUJ1ZmZlcihQQUw6Oldl
YkdQVTo6QnVmZmVyJiBidWZmZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAg
ICA6IG1fYmFja2luZyhidWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sK
K30KKworUmVtb3RlQnVmZmVyOjp+UmVtb3RlQnVmZmVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVC
dWZmZXI6Om1hcEFzeW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzLCBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPHVpbnQ4X3Q+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShtYXBNb2Rl
RmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgIFVOVVNFRF9QQVJBTShjYWxs
YmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlQnVmZmVyOjp1bm1hcChWZWN0b3I8dWludDhfdD4mJiBk
YXRhKQoreworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKK30KKwordm9pZCBSZW1vdGVCdWZmZXI6
OmRlc3Ryb3koKQoreworfQorCit2b2lkIFJlbW90ZUJ1ZmZlcjo6c2V0TGFiZWwoU3RyaW5nJiYg
bGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNGE0NWE3ZGRhZTdkNDMxODY3NTQwZGUwOTI4OTIyMTBkMzQxNTJkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVCdWZmZXIuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVU1hcE1vZGUuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgQnVmZmVy
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBP
YmplY3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVCdWZmZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQnVm
ZmVyPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkJ1ZmZlciYgYnVmZmVyLCBXZWJHUFU6Ok9iamVjdEhl
YXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1v
dGVCdWZmZXIoYnVmZmVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVt
b3RlQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisK
KyAgICBSZW1vdGVCdWZmZXIoUEFMOjpXZWJHUFU6OkJ1ZmZlciYsIFdlYkdQVTo6T2JqZWN0SGVh
cCYpOworCisgICAgUmVtb3RlQnVmZmVyKGNvbnN0IFJlbW90ZUJ1ZmZlciYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZUJ1ZmZlcihSZW1vdGVCdWZmZXImJikgPSBkZWxldGU7CisgICAgUmVtb3RlQnVm
ZmVyJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlQnVmZmVyJikgPSBkZWxldGU7CisgICAgUmVtb3Rl
QnVmZmVyJiBvcGVyYXRvcj0oUmVtb3RlQnVmZmVyJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIG1hcEFzeW5jKFBBTDo6V2ViR1BVOjpN
YXBNb2RlRmxhZ3MsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemVGb3JNYXAsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOworICAgIHZvaWQgdW5tYXAo
VmVjdG9yPHVpbnQ4X3Q+JiYpOworCisgICAgdm9pZCBkZXN0cm95KCk7CisKKyAgICB2b2lkIHNl
dExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPiBtX2JhY2tp
bmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1
ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQnVmZmVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZWYxMDIxOGUyOTI0MTll
NWFiNzNlYTk0YzA3ODk4ODIwZGY4YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDMzIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2Fn
ZXMgLT4gUmVtb3RlQnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIE1hcEFz
eW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzLCBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTY0PiBzaXplKSAtPiAoVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9ub3VzCisgICAg
dm9pZCBVbm1hcChWZWN0b3I8dWludDhfdD4gZGF0YSkKKyAgICB2b2lkIERlc3Ryb3koKQorICAg
IHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNv
bW1hbmRCdWZmZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YTlkNTkxM2ZkM2U4YzFmZWM2OTYxYTVhY2Yy
OGEwMmQ4MjBiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFu
ZEJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BV
T2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQ29tbWFuZEJ1ZmZlcjo6
UmVtb3RlQ29tbWFuZEJ1ZmZlcihQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciYgY29tbWFuZEJ1
ZmZlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGNv
bW1hbmRCdWZmZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVt
b3RlQ29tbWFuZEJ1ZmZlcjo6flJlbW90ZUNvbW1hbmRCdWZmZXIoKQoreworfQorCit2b2lkIFJl
bW90ZUNvbW1hbmRCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNF
RF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRCdWZmZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kYTU2ZmJhNmE4YzM2M2I2NjIyNTllNmI2YjUwM2RlNWJjYTU2MDA3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21t
YW5kQnVmZmVyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2Vi
R1BVIHsKK2NsYXNzIENvbW1hbmRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUNv
bW1hbmRCdWZmZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQ29tbWFuZEJ1ZmZlcj4gY3JlYXRlKFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyJiBjb21tYW5kQnVmZmVyLCBXZWJHUFU6Ok9iamVjdEhlYXAm
IG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVD
b21tYW5kQnVmZmVyKGNvbW1hbmRCdWZmZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIH5SZW1vdGVDb21tYW5kQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyKFBBTDo6V2ViR1BVOjpD
b21tYW5kQnVmZmVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVDb21tYW5k
QnVmZmVyKGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZmZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVD
b21tYW5kQnVmZmVyKFJlbW90ZUNvbW1hbmRCdWZmZXImJikgPSBkZWxldGU7CisgICAgUmVtb3Rl
Q29tbWFuZEJ1ZmZlciYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUNvbW1hbmRCdWZmZXImKSA9IGRl
bGV0ZTsKKyAgICBSZW1vdGVDb21tYW5kQnVmZmVyJiBvcGVyYXRvcj0oUmVtb3RlQ29tbWFuZEJ1
ZmZlciYmKSA9IGRlbGV0ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBD
OjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisg
ICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkNvbW1h
bmRCdWZmZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVj
dEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYjhjZTFiZTc2OWIwNTZkZTc2MDNkYjAwNjcwNDQyMTg1NDE3ZGMxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVDb21tYW5kQnVmZmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKy8qIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVDb21tYW5k
QnVmZmVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBs
YWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU2OGQwMTJhZmFkY2VmYTgxMjhhYzY5M2MxN2M3Mjc0NGE0ZWQ1YzUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbW1hbmRFbmNvZGVyLmNwcApAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5kRW5jb2Rlci5oIgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlw
dG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1JlbW90ZUNvbW1hbmRFbmNvZGVyOjpSZW1vdGVDb21tYW5kRW5jb2RlcihQQUw6OldlYkdQ
VTo6Q29tbWFuZEVuY29kZXImIGNvbW1hbmRFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9i
amVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoY29tbWFuZEVuY29kZXIpCisgICAgLCBtX29iamVj
dEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVtb3RlQ29tbWFuZEVuY29kZXI6On5SZW1vdGVD
b21tYW5kRW5jb2RlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OmJlZ2lu
UmVuZGVyUGFzcyhjb25zdCBXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
LCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2Ny
aXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVD
b21tYW5kRW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyhjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkdQ
VTo6Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlC
dWZmZXJUb0J1ZmZlcigKKyAgICBXZWJHUFVJZGVudGlmaWVyIHNvdXJjZSwKKyAgICBQQUw6Oldl
YkdQVTo6U2l6ZTY0IHNvdXJjZU9mZnNldCwKKyAgICBXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0
aW9uLAorICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCisgICAgUEFM
OjpXZWJHUFU6OlNpemU2NCBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOworICAg
IFVOVVNFRF9QQVJBTShzb3VyY2VPZmZzZXQpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlv
bik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uT2Zmc2V0KTsKKyAgICBVTlVTRURfUEFS
QU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb1Rl
eHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlCdWZmZXImIHNvdXJjZSwKKyAgICBj
b25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IFdl
YkdQVTo6RXh0ZW50M0QmIGNvcHlTaXplKQoreworICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOwor
ICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGNvcHlTaXpl
KTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb0J1ZmZlcigK
KyAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIHNvdXJjZSwKKyAgICBjb25zdCBX
ZWJHUFU6OkltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgY29uc3QgV2ViR1BVOjpF
eHRlbnQzRCYgY29weVNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7CisgICAgVU5V
U0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oY29weVNpemUpOworfQor
Cit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZSgKKyAgICBj
b25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUmIHNvdXJjZSwKKyAgICBjb25zdCBXZWJHUFU6
OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50
M0QmIGNvcHlTaXplKQoreworICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOworICAgIFVOVVNFRF9Q
QVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKK30KKwordm9p
ZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcigKKyAgICBXZWJHUFVJZGVudGlmaWVy
IGRlc3RpbmF0aW9uLAorICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQs
CisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShkZXN0
aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uT2Zmc2V0KTsKKyAgICBVTlVT
RURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OnB1c2hEZWJ1
Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFi
ZWwpOworfQorCit2b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKK3sK
K30KKwordm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5n
JiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKK30KKwor
dm9pZCBSZW1vdGVDb21tYW5kRW5jb2Rlcjo6d3JpdGVUaW1lc3RhbXAoV2ViR1BVSWRlbnRpZmll
ciBxdWVyeVNldCwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQoreworICAgIFVOVVNF
RF9QQVJBTShxdWVyeVNldCk7CisgICAgVU5VU0VEX1BBUkFNKHF1ZXJ5SW5kZXgpOworfQorCit2
b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpyZXNvbHZlUXVlcnlTZXQoCisgICAgV2ViR1BVSWRl
bnRpZmllciBxdWVyeVNldCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0UXVlcnksCisg
ICAgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUNvdW50LAorICAgIFdlYkdQVUlkZW50aWZpZXIg
ZGVzdGluYXRpb24sCisgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBkZXN0aW5hdGlvbk9mZnNldCkK
K3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlTZXQpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdFF1
ZXJ5KTsKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGRl
c3RpbmF0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25PZmZzZXQpOworfQorCit2
b2lkIFJlbW90ZUNvbW1hbmRFbmNvZGVyOjpmaW5pc2goY29uc3QgV2ViR1BVOjpDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tbWFuZEVuY29kZXI6OnNldExhYmVsKFN0cmluZyYm
IGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21tYW5kRW5jb2Rl
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21t
YW5kRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNjBlNGIxMzg2YTJlM2UwY2RkNTliNzZiZjJmOGY2
NjRlYjM4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVudDNE
LmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsK
K2NsYXNzIENvbW1hbmRFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNw
YWNlIFdlYkdQVSB7CitzdHJ1Y3QgQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29t
cHV0ZVBhc3NEZXNjcmlwdG9yOworc3RydWN0IEltYWdlQ29weUJ1ZmZlcjsKK3N0cnVjdCBJbWFn
ZUNvcHlUZXh0dXJlOworY2xhc3MgT2JqZWN0SGVhcDsKK3N0cnVjdCBSZW5kZXJQYXNzRGVzY3Jp
cHRvcjsKK30KKworY2xhc3MgUmVtb3RlQ29tbWFuZEVuY29kZXIgZmluYWwgOiBwdWJsaWMgSVBD
OjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3Rl
Q29tbWFuZEVuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXImIGNvbW1h
bmRFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVDb21tYW5kRW5jb2Rlcihjb21tYW5kRW5jb2Rl
ciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUNvbW1hbmRFbmNv
ZGVyKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBS
ZW1vdGVDb21tYW5kRW5jb2RlcihQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXImLCBXZWJHUFU6
Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IFJlbW90ZUNv
bW1hbmRFbmNvZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tbWFuZEVuY29kZXIoUmVtb3Rl
Q29tbWFuZEVuY29kZXImJikgPSBkZWxldGU7CisgICAgUmVtb3RlQ29tbWFuZEVuY29kZXImIG9w
ZXJhdG9yPShjb25zdCBSZW1vdGVDb21tYW5kRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90
ZUNvbW1hbmRFbmNvZGVyJiBvcGVyYXRvcj0oUmVtb3RlQ29tbWFuZEVuY29kZXImJikgPSBkZWxl
dGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgYmVnaW5S
ZW5kZXJQYXNzKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGFzc0Rlc2NyaXB0b3ImLCBXZWJHUFVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGJlZ2luQ29tcHV0ZVBhc3MoY29uc3Qgc3RkOjpvcHRpb25hbDxX
ZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcj4mLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAg
IHZvaWQgY29weUJ1ZmZlclRvQnVmZmVyKAorICAgICAgICBXZWJHUFVJZGVudGlmaWVyIHNvdXJj
ZSwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBzb3VyY2VPZmZzZXQsCisgICAgICAgIFdl
YkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplNjQg
ZGVzdGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplNjQpOworCisgICAg
dm9pZCBjb3B5QnVmZmVyVG9UZXh0dXJlKAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29w
eUJ1ZmZlciYgc291cmNlLAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29weVRleHR1cmUm
IGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSk7
CisKKyAgICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZmZXIoCisgICAgICAgIGNvbnN0IFdlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlQ29w
eUJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIGNv
cHlTaXplKTsKKworICAgIHZvaWQgY29weVRleHR1cmVUb1RleHR1cmUoCisgICAgICAgIGNvbnN0
IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAorICAgICAgICBjb25zdCBXZWJHUFU6
OkltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBXZWJHUFU6OkV4
dGVudDNEJiBjb3B5U2l6ZSk7CisKKyAgICB2b2lkIGZpbGxCdWZmZXIoCisgICAgICAgIFdlYkdQ
VUlkZW50aWZpZXIgZGVzdGluYXRpb24sCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVz
dGluYXRpb25PZmZzZXQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplNjQpOworCisgICAgdm9p
ZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVsKTsKKyAgICB2b2lkIHBvcERlYnVn
R3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVs
KTsKKworICAgIHZvaWQgd3JpdGVUaW1lc3RhbXAoV2ViR1BVSWRlbnRpZmllciwgUEFMOjpXZWJH
UFU6OlNpemUzMiBxdWVyeUluZGV4KTsKKworICAgIHZvaWQgcmVzb2x2ZVF1ZXJ5U2V0KAorICAg
ICAgICBXZWJHUFVJZGVudGlmaWVyLAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0
UXVlcnksCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgcXVlcnlDb3VudCwKKyAgICAgICAg
V2ViR1BVSWRlbnRpZmllciBkZXN0aW5hdGlvbiwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemU2
NCBkZXN0aW5hdGlvbk9mZnNldCk7CisKKyAgICB2b2lkIGZpbmlzaChjb25zdCBXZWJHUFU6OkNv
bW1hbmRCdWZmZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHNl
dExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+
IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJjMGJmMzMxMTQ4ZDJlOTUzMWM1OTdjYjljZGRkNjE3M2I3ZDI5YzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDMgQEAKKy8qIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVDb21tYW5kRW5jb2Rl
ciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBCZWdpblJlbmRlclBhc3MoV2ViS2l0
OjpXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQmVnaW5Db21wdXRlUGFzcyhzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I+IGRlc2NyaXB0b3Is
IFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ29weUJ1ZmZl
clRvQnVmZmVyKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBzb3VyY2UsIFBBTDo6V2ViR1BVOjpT
aXplNjQgc291cmNlT2Zmc2V0LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgZGVzdGluYXRpb24s
IFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsIFBBTDo6V2ViR1BVOjpTaXpl
NjQgc2l6ZSkKKyAgICB2b2lkIENvcHlCdWZmZXJUb1RleHR1cmUoV2ViS2l0OjpXZWJHUFU6Oklt
YWdlQ29weUJ1ZmZlciBzb3VyY2UsIFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlIGRl
c3RpbmF0aW9uLCBXZWJLaXQ6OldlYkdQVTo6RXh0ZW50M0QgY29weVNpemUpCisgICAgdm9pZCBD
b3B5VGV4dHVyZVRvQnVmZmVyKFdlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlIHNvdXJj
ZSwgV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZlciBkZXN0aW5hdGlvbiwgV2ViS2l0OjpX
ZWJHUFU6OkV4dGVudDNEIGNvcHlTaXplKQorICAgIHZvaWQgQ29weVRleHR1cmVUb1RleHR1cmUo
V2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUgc291cmNlLCBXZWJLaXQ6OldlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgV2ViS2l0OjpXZWJHUFU6OkV4dGVudDNEIGNv
cHlTaXplKQorICAgIHZvaWQgRmlsbEJ1ZmZlcihXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgZGVz
dGluYXRpb24sIFBBTDo6V2ViR1BVOjpTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsIFBBTDo6V2Vi
R1BVOjpTaXplNjQgc2l6ZSkKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmluZyBncm91cExh
YmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtl
cihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBXcml0ZVRpbWVzdGFtcChXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4
KQorICAgIHZvaWQgUmVzb2x2ZVF1ZXJ5U2V0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0UXVlcnksIFBBTDo6V2ViR1BVOjpTaXpl
MzIgcXVlcnlDb3VudCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBQQUw6
OldlYkdQVTo6U2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0KQorICAgIHZvaWQgRmluaXNoKFdlYktp
dDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJl
bCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDM1MGE5ZjZkZjAwZjQ1YzFjMjE1OWZjNjFiMzdjN2JlMjFlZjkwNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVj
dEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNz
RW5jb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQ29tcHV0ZVBhc3NFbmNv
ZGVyOjpSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5j
b2RlciYgY29tcHV0ZVBhc3NFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXAp
CisgICAgOiBtX2JhY2tpbmcoY29tcHV0ZVBhc3NFbmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFw
KG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6flJlbW90ZUNv
bXB1dGVQYXNzRW5jb2RlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVy
OjpzZXRQaXBlbGluZShXZWJHUFVJZGVudGlmaWVyIGNvbXB1dGVQaXBlbGluZSkKK3sKKyAgICBV
TlVTRURfUEFSQU0oY29tcHV0ZVBpcGVsaW5lKTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFz
c0VuY29kZXI6OmRpc3BhdGNoKFBBTDo6V2ViR1BVOjpTaXplMzIgeCwgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U2l6ZTMyPiB5LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplMzI+
IHopCit7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAgIFVOVVNFRF9QQVJBTSh5KTsKKyAgICBV
TlVTRURfUEFSQU0oeik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNw
YXRjaEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BV
OjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVm
ZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lkIFJlbW90
ZUNvbXB1dGVQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShXZWJHUFVJ
ZGVudGlmaWVyIHF1ZXJ5U2V0LCBQQUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXgpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKHF1ZXJ5U2V0KTsKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlJbmRleCk7
Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQaXBlbGluZVN0YXRpc3Rp
Y3NRdWVyeSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNz
KCkKK3sKK30KKwordm9pZCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cChQ
QUw6OldlYkdQVTo6SW5kZXgzMiBpbmRleCwgV2ViR1BVSWRlbnRpZmllciBiaW5kR3JvdXAsCisg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+
PiYmIG9mZnNldHMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFS
QU0oYmluZEdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0ob2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVt
b3RlQ29tcHV0ZVBhc3NFbmNvZGVyOjpwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVs
KQoreworICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKK30KKwordm9pZCBSZW1vdGVDb21w
dXRlUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQoreworfQorCit2b2lkIFJlbW90ZUNvbXB1
dGVQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCit7
CisgICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKK30KKwordm9pZCBSZW1vdGVDb21wdXRl
UGFzc0VuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJB
TShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzdhZmJkOGU5YzU0ZWY2MjQ3MWZkMDg0ZDMxMjZmODFmMTI4ZWM1MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
Q29tcHV0ZVBhc3NFbmNvZGVyLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBB
TDo6V2ViR1BVIHsKK2NsYXNzIENvbXB1dGVQYXNzRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xh
c3MgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVz
c2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXImIGNvbXB1dGVQ
YXNzRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyKGNvbXB1dGVQ
YXNzRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUNv
bXB1dGVQYXNzRW5jb2RlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RI
ZWFwOworCisgICAgUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyKFBBTDo6V2ViR1BVOjpDb21wdXRl
UGFzc0VuY29kZXImLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZUNvbXB1dGVQ
YXNzRW5jb2Rlcihjb25zdCBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXImKSA9IGRlbGV0ZTsKKyAg
ICBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIoUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyJiYpID0g
ZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYgb3BlcmF0b3I9KGNvbnN0IFJl
bW90ZUNvbXB1dGVQYXNzRW5jb2RlciYpID0gZGVsZXRlOworICAgIFJlbW90ZUNvbXB1dGVQYXNz
RW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZUNvbXB1dGVQYXNzRW5jb2RlciYmKSA9IGRlbGV0ZTsK
KworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRQaXBlbGlu
ZShXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpc3BhdGNoKFBBTDo6V2ViR1BVOjpTaXpl
MzIgeCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB5LCBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTaXplMzI+KTsKKyAgICB2b2lkIGRpc3BhdGNoSW5kaXJlY3QoV2ViR1BV
SWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9m
ZnNldCk7CisKKyAgICB2b2lkIGJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRl
bnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsKKyAgICB2b2lkIGVuZFBp
cGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CisKKyAgICB2b2lkIGVuZFBhc3MoKTsKKworICAgIHZv
aWQgc2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyLCBXZWJHUFVJZGVudGlmaWVyLAor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09m
ZnNldD4+JiYpOworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcmJiBncm91cExhYmVs
KTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2VydERlYnVnTWFya2Vy
KFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwor
CisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+IG1fYmFja2luZzsKKyAg
ICBSZWY8V2ViR1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBh
c3NFbmNvZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODZiZDJiNTcyY2JhNTQxMWEyM2MyOWM5N2QwN2NjNmMwYzBlYzJmNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0
ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDAgQEAKKy8qIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVDb21wdXRlUGFzc0VuY29k
ZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZvaWQgU2V0UGlwZWxpbmUoV2ViS2l0OjpX
ZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBEaXNwYXRjaChQQUw6OldlYkdQ
VTo6U2l6ZTMyIHgsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4geSwgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiB6KQorICAgIHZvaWQgRGlzcGF0Y2hJbmRpcmVj
dChXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpT
aXplNjQgaW5kaXJlY3RPZmZzZXQpCisgICAgdm9pZCBCZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1
ZXJ5KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OldlYkdQVTo6U2l6
ZTMyIHF1ZXJ5SW5kZXgpCisgICAgdm9pZCBFbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpCisg
ICAgdm9pZCBFbmRQYXNzKCkKKyAgICB2b2lkIFNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5k
ZXgzMiBpbmRleCwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFBBTDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4gZHluYW1pY09m
ZnNldHMpCisgICAgdm9pZCBQdXNoRGVidWdHcm91cChTdHJpbmcgZ3JvdXBMYWJlbCkKKyAgICB2
b2lkIFBvcERlYnVnR3JvdXAoKQorICAgIHZvaWQgSW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nIG1h
cmtlckxhYmVsKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlQ29tcHV0ZVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjlkOTA5NDgx
OTJjNGJmMDAzNDFjZjhiZTY4ZjQ2ZmRlNGNmZGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVDb21wdXRlUGlwZWxpbmUu
Y3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1JlbW90ZUNvbXB1dGVQaXBlbGluZTo6UmVtb3RlQ29tcHV0ZVBpcGVsaW5lKFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGlwZWxpbmUmIGNvbXB1dGVQaXBlbGluZSwgV2ViR1BVOjpPYmplY3RIZWFw
JiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKGNvbXB1dGVQaXBlbGluZSkKKyAgICAsIG1f
b2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVDb21wdXRlUGlwZWxpbmU6On5S
ZW1vdGVDb21wdXRlUGlwZWxpbmUoKQoreworfQorCit2b2lkIFJlbW90ZUNvbXB1dGVQaXBlbGlu
ZTo6Z2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAgICBVTlVTRURfUEFSQU0o
aWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lOjpzZXRMYWJlbChT
dHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0
ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUNvbXB1dGVQaXBlbGluZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViMzQwNDNkNzQ4ZmJmN2VmNmJlYTJi
MzJkNTA5ZTZmMGNmMmIwMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbXB1dGVQaXBlbGluZS5oCkBAIC0wLDAgKzEs
NzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQ
VUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBDb21wdXRlUGlw
ZWxpbmU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsKK2Ns
YXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZUNvbXB1dGVQaXBlbGluZSBmaW5hbCA6
IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZW1vdGVDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZShQQUw6OldlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lJiBjb21wdXRlUGlwZWxpbmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUNvbXB1dGVQaXBlbGlu
ZShjb21wdXRlUGlwZWxpbmUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVDb21wdXRlUGlwZWxpbmUoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2Jq
ZWN0SGVhcDsKKworICAgIFJlbW90ZUNvbXB1dGVQaXBlbGluZShQQUw6OldlYkdQVTo6Q29tcHV0
ZVBpcGVsaW5lJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVDb21wdXRlUGlw
ZWxpbmUoY29uc3QgUmVtb3RlQ29tcHV0ZVBpcGVsaW5lJikgPSBkZWxldGU7CisgICAgUmVtb3Rl
Q29tcHV0ZVBpcGVsaW5lKFJlbW90ZUNvbXB1dGVQaXBlbGluZSYmKSA9IGRlbGV0ZTsKKyAgICBS
ZW1vdGVDb21wdXRlUGlwZWxpbmUmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVDb21wdXRlUGlwZWxp
bmUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVDb21wdXRlUGlwZWxpbmUmIG9wZXJhdG9yPShSZW1v
dGVDb21wdXRlUGlwZWxpbmUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJl
YW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKworICAgIHZvaWQgZ2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGluZGV4LCBX
ZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAg
UmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+IG1fYmFja2luZzsKKyAgICBSZWY8V2Vi
R1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ1OWFhNTkyMzQyOTM4
MWQzNzYwZjUyZmI2ZTNjNDg3YmJhYzZlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCittZXNzYWdlcyAtPiBSZW1vdGVDb21wdXRlUGlwZWxpbmUgTm90UmVmQ291bnRlZCBTdHJl
YW0geworICAgIHZvaWQgR2V0QmluZEdyb3VwTGF5b3V0KHVpbnQzMl90IGluZGV4LCBXZWJLaXQ6
OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBs
YWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQwMTJhYTc4
NjU4N2E0MTI3NGYwOGRiZmFlNWEyY2Q5ZjYwNTI5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcApAQCAt
MCwwICsxLDE2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVEZXZpY2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVU9iamVj
dEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlRGV2aWNlOjpSZW1vdGVEZXZpY2UoUEFMOjpX
ZWJHUFU6OkRldmljZSYgZGV2aWNlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisg
ICAgOiBtX2JhY2tpbmcoZGV2aWNlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7
Cit9CisKK1JlbW90ZURldmljZTo6flJlbW90ZURldmljZSgpCit7Cit9CisKK3ZvaWQgUmVtb3Rl
RGV2aWNlOjpkZXN0cm95KCkKK3sKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUJ1ZmZl
cihjb25zdCBXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAg
VU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRl
VGV4dHVyZShjb25zdCBXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3Ip
OworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6
OmNyZWF0ZVNhbXBsZXIoY29uc3QgV2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNj
cmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
RGV2aWNlOjppbXBvcnRFeHRlcm5hbFRleHR1cmUoY29uc3QgV2ViR1BVOjpFeHRlcm5hbFRleHR1
cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25z
dCBXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7Cisg
ICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3Jl
YXRlUGlwZWxpbmVMYXlvdXQoY29uc3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3Im
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlQmluZEdyb3VwKGNvbnN0IFdlYkdQVTo6QmluZEdyb3Vw
RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2Vi
R1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNF
RF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZUNvbXB1
dGVQaXBlbGluZShjb25zdCBXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0o
ZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJl
bW90ZURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFNKGlkZW50
aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5
bmMoY29uc3QgV2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBX
ZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVT
RURfUEFSQU0oaWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKK30KKwor
dm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BV
OjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7
CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZURldmlj
ZTo6Y3JlYXRlQ29tbWFuZEVuY29kZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJHUFU6OkNvbW1h
bmRFbmNvZGVyRGVzY3JpcHRvcj4mIGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRvcik7CisgICAgVU5VU0VEX1BBUkFN
KGlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVuZGVyQnVuZGxl
RW5jb2Rlcihjb25zdCBXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBS
ZW1vdGVEZXZpY2U6OmNyZWF0ZVF1ZXJ5U2V0KGNvbnN0IFdlYkdQVTo6UXVlcnlTZXREZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgVU5V
U0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKK30K
Kwordm9pZCBSZW1vdGVEZXZpY2U6OnB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZp
bHRlciBlcnJvckZpbHRlcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZXJyb3JGaWx0ZXIpOworfQor
Cit2b2lkIFJlbW90ZURldmljZTo6cG9wRXJyb3JTY29wZShXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxXZWJHUFU6OkVycm9yPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAg
ICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOworfQorCit2b2lkIFJlbW90ZURldmljZTo6c2V0TGFi
ZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURl
dmljZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVE
ZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZWEyMGE3M2JiYmU1ZDA3NjM4MWY4NzFkZjI2MmYyZDE4NDVj
ODNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVEZXZpY2UuaApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVRXJyb3IuaCIKKyNpbmNsdWRlICJX
ZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVF
cnJvckZpbHRlci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFBBTDo6V2ViR1BVIHsKK2NsYXNzIERldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK25hbWVzcGFjZSBXZWJHUFUgeworc3RydWN0IEJpbmRHcm91cERlc2NyaXB0b3I7CitzdHJ1
Y3QgQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBCdWZmZXJEZXNjcmlwdG9yOwor
c3RydWN0IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcjsKK3N0cnVjdCBDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yOworc3RydWN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I7CitjbGFzcyBPYmpl
Y3RIZWFwOworc3RydWN0IFBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBRdWVyeVNl
dERlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I7CitzdHJ1
Y3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yOwor
c3RydWN0IFNoYWRlck1vZHVsZURlc2NyaXB0b3I7CitzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3I7
Cit9CisKK2NsYXNzIFJlbW90ZURldmljZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3Nh
Z2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVEZXZpY2U+IGNyZWF0
ZShQQUw6OldlYkdQVTo6RGV2aWNlJiBkZXZpY2UsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0
SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZURldmljZShk
ZXZpY2UsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB+UmVtb3RlRGV2aWNlKCk7CisKK3By
aXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVEZXZpY2Uo
UEFMOjpXZWJHUFU6OkRldmljZSYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3Rl
RGV2aWNlKGNvbnN0IFJlbW90ZURldmljZSYpID0gZGVsZXRlOworICAgIFJlbW90ZURldmljZShS
ZW1vdGVEZXZpY2UmJikgPSBkZWxldGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0oY29u
c3QgUmVtb3RlRGV2aWNlJikgPSBkZWxldGU7CisgICAgUmVtb3RlRGV2aWNlJiBvcGVyYXRvcj0o
UmVtb3RlRGV2aWNlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVz
c2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICB2b2lkIGRlc3Ryb3koKTsKKworICAgIHZvaWQgY3JlYXRlQnVmZmVyKGNvbnN0
IFdlYkdQVTo6QnVmZmVyRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQg
Y3JlYXRlVGV4dHVyZShjb25zdCBXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRl
bnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVTYW1wbGVyKGNvbnN0IFdlYkdQVTo6U2FtcGxlckRl
c2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGltcG9ydEV4dGVybmFsVGV4
dHVyZShjb25zdCBXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVu
dGlmaWVyKTsKKworICAgIHZvaWQgY3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IFdlYkdQVTo6
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQg
Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29uc3QgV2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0
b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUJpbmRHcm91cChjb25zdCBX
ZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZv
aWQgY3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRv
ciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNv
bnN0IFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIp
OworICAgIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUNvbXB1
dGVQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYs
IFdlYkdQVUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIGNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CisKKyAgICB2b2lkIGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8V2ViR1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I+JiwgV2ViR1BVSWRlbnRp
Zmllcik7CisgICAgdm9pZCBjcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFdlYkdQVTo6
UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3ImLCBXZWJHUFVJZGVudGlmaWVyKTsKKworICAg
IHZvaWQgY3JlYXRlUXVlcnlTZXQoY29uc3QgV2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3ImLCBX
ZWJHUFVJZGVudGlmaWVyKTsKKworICAgIHZvaWQgcHVzaEVycm9yU2NvcGUoUEFMOjpXZWJHUFU6
OkVycm9yRmlsdGVyKTsKKyAgICB2b2lkIHBvcEVycm9yU2NvcGUoV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViR1BVOjpFcnJvcj4mJik+JiYpOworCisgICAgdm9p
ZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4gbV9i
YWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVEZXZpY2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDA3ZWNmMjcyOWVk
NTM4NzEyZWY3ODEyNDYxNDBiNTU1YWVjYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4K
QEAgLTAsMCArMSw0OCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisg
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21l
c3NhZ2VzIC0+IFJlbW90ZURldmljZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBE
ZXN0cm95KCkKKyAgICB2b2lkIENyZWF0ZUJ1ZmZlcihXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVz
Y3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICB2b2lkIENyZWF0ZVRleHR1cmUoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZv
aWQgQ3JlYXRlU2FtcGxlcihXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckRlc2NyaXB0b3IgZGVzY3Jp
cHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBJbXBv
cnRFeHRlcm5hbFRleHR1cmUoV2ViS2l0OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0
b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
dm9pZCBDcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91
dERlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisgICAgdm9pZCBDcmVhdGVQaXBlbGluZUxheW91dChXZWJLaXQ6OldlYkdQVTo6UGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlQmluZEdyb3VwKFdlYktpdDo6V2ViR1BVOjpCaW5k
R3JvdXBEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlU2hhZGVyTW9kdWxlKFdlYktpdDo6V2ViR1BVOjpTaGFk
ZXJNb2R1bGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYktpdDo6V2ViR1BV
OjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViS2l0
OjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZUNvbXB1dGVQaXBlbGlu
ZUFzeW5jKFdlYktpdDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0
b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91
cworICAgIHZvaWQgQ3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhXZWJLaXQ6OldlYkdQVTo6UmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlQ29tbWFuZEVu
Y29kZXIoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlw
dG9yPiBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICB2b2lkIENyZWF0ZVJlbmRlckJ1bmRsZUVuY29kZXIoV2ViS2l0OjpXZWJHUFU6OlJlbmRlckJ1
bmRsZUVuY29kZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlUXVlcnlTZXQoV2ViS2l0OjpXZWJHUFU6OlF1
ZXJ5U2V0RGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICB2b2lkIFB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZpbHRl
ciBlcnJvckZpbHRlcikKKyAgICB2b2lkIFBvcEVycm9yU2NvcGUoKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OldlYkdQVTo6RXJyb3I+IGVycm9yKSBTeW5jaHJvbm91cworICAgIHZvaWQgU2V0
TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxU
ZXh0dXJlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGJjNGQ5N2I1ZjBiODdmZTkxNmJkNzA1M2NkNDNkODQ1
N2E2OTdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRXh0ZXJuYWxU
ZXh0dXJlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVP
YmplY3RIZWFwLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5h
bFRleHR1cmUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZUV4dGVybmFsVGV4dHVy
ZTo6UmVtb3RlRXh0ZXJuYWxUZXh0dXJlKFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUmIGV4
dGVybmFsVGV4dHVyZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9i
YWNraW5nKGV4dGVybmFsVGV4dHVyZSkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQor
eworfQorCitSZW1vdGVFeHRlcm5hbFRleHR1cmU6On5SZW1vdGVFeHRlcm5hbFRleHR1cmUoKQor
eworfQorCit2b2lkIFJlbW90ZUV4dGVybmFsVGV4dHVyZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFi
ZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5h
bFRleHR1cmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmNkZTNkNzhkZDIzZDVkZDgwM2VlNTNjYjY5NDRjOGY4
YTg1YzNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVFeHRlcm5hbFRleHR1cmUuaApAQCAtMCwwICsxLDc0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgRXh0ZXJuYWxUZXh0dXJlOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RI
ZWFwOworfQorCitjbGFzcyBSZW1vdGVFeHRlcm5hbFRleHR1cmUgZmluYWwgOiBwdWJsaWMgSVBD
OjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3Rl
RXh0ZXJuYWxUZXh0dXJlPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYgZXh0
ZXJuYWxUZXh0dXJlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVFeHRlcm5hbFRleHR1cmUoZXh0ZXJuYWxU
ZXh0dXJlLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlRXh0ZXJu
YWxUZXh0dXJlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisK
KyAgICBSZW1vdGVFeHRlcm5hbFRleHR1cmUoUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSYs
IFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlKGNvbnN0
IFJlbW90ZUV4dGVybmFsVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZUV4dGVybmFsVGV4
dHVyZShSZW1vdGVFeHRlcm5hbFRleHR1cmUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlRXh0ZXJu
YWxUZXh0dXJlJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJikgPSBkZWxl
dGU7CisgICAgUmVtb3RlRXh0ZXJuYWxUZXh0dXJlJiBvcGVyYXRvcj0oUmVtb3RlRXh0ZXJuYWxU
ZXh0dXJlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJ
UEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisK
KyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQVTo6RXh0
ZXJuYWxUZXh0dXJlPiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9v
YmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZWQyNzhmZjI5MjRjMjQzMDRiMGUyM2EyZjAzYWQ5ZWI4
ODA0OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUV4dGVybmFsVGV4dHVyZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMw
IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisg
KiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVt
b3RlRXh0ZXJuYWxUZXh0dXJlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExh
YmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ0
MGY1MDViY2I0MDYzNTYzNGM5NjVmZGZhYmZhYzFiMDcyNDg5NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNwcApA
QCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZUdQVS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVHUFU6OlJlbW90ZUdQVShQQUw6Oldl
YkdQVTo6R1BVJiBncHUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1f
YmFja2luZyhncHUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sKK30KKworUmVt
b3RlR1BVOjp+UmVtb3RlR1BVKCkKK3sKK30KKwordm9pZCBSZW1vdGVHUFU6OnJlcXVlc3RBZGFw
dGVyKGNvbnN0IFdlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJiBvcHRpb25zLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYsIFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMm
JiwgV2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHMmJik+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VE
X1BBUkFNKG9wdGlvbnMpOworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTQ5MmQyOWMyNTZkYjY5MjY4ZWI4Y2ZjZWNiMTk2NjY1MmJhMzZmMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlR1BVLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkdQVVN1
cHBvcnRlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
CituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgR1BVOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFJl
cXVlc3RBZGFwdGVyT3B0aW9uczsKK30KKworY2xhc3MgUmVtb3RlR1BVIGZpbmFsIDogcHVibGlj
IElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJl
bW90ZUdQVT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpHUFUmIGdwdSwgV2ViR1BVOjpPYmplY3RIZWFw
JiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3Rl
R1BVKGdwdSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUdQVSgp
OworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3Rl
R1BVKFBBTDo6V2ViR1BVOjpHUFUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90
ZUdQVShjb25zdCBSZW1vdGVHUFUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVHUFUoUmVtb3RlR1BV
JiYpID0gZGVsZXRlOworICAgIFJlbW90ZUdQVSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZUdQVSYp
ID0gZGVsZXRlOworICAgIFJlbW90ZUdQVSYgb3BlcmF0b3I9KFJlbW90ZUdQVSYmKSA9IGRlbGV0
ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCByZXF1ZXN0
QWRhcHRlcihjb25zdCBXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJiwgV2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYmLCBX
ZWJHUFU6OlN1cHBvcnRlZExpbWl0cyYmKT4mJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkdQ
VT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVHUFUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUdQVS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjU4ZTdmNWM3Y2U0
MTY3Y2NkMzRkNTkxZDViMmYxMmVlNjE3YTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3Nh
Z2VzIC0+IFJlbW90ZUdQVSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBSZXF1ZXN0
QWRhcHRlcihXZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zIG9wdGlvbnMpIC0+
IChTdHJpbmcgbmFtZSwgV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzIHN1cHBvcnRl
ZEZlYXR1cmVzLCBXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzIHN1cHBvcnRlZExpbWl0
cykgU3luY2hyb25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYxMGZhZGZlNjZjNDg1MDc1ZTkxNmQ1ODYyODYwNWNmZDU0NDNjNWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVBpcGVsaW5lTGF5b3V0Lmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUGlwZWxpbmVMYXlvdXQ6OlJlbW90ZVBp
cGVsaW5lTGF5b3V0KFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQs
IFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1fYmFja2luZyhwaXBlbGlu
ZUxheW91dCkKKyAgICAsIG1fb2JqZWN0SGVhcChvYmplY3RIZWFwKQoreworfQorCitSZW1vdGVQ
aXBlbGluZUxheW91dDo6flJlbW90ZVBpcGVsaW5lTGF5b3V0KCkKK3sKK30KKwordm9pZCBSZW1v
dGVQaXBlbGluZUxheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VE
X1BBUkFNKGxhYmVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGNlOWRhNTBlOTA0NDJkMTIzMjQyNTg2OGY5NDkyZGMwNWJlZmYyYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlw
ZWxpbmVMYXlvdXQuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpX
ZWJHUFUgeworY2xhc3MgUGlwZWxpbmVMYXlvdXQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90
ZVBpcGVsaW5lTGF5b3V0IGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUo
UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0JiBwaXBlbGluZUxheW91dCwgV2ViR1BVOjpPYmpl
Y3RIZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVtb3RlUGlwZWxpbmVMYXlvdXQocGlwZWxpbmVMYXlvdXQsIG9iamVjdEhlYXApKTsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVQaXBlbGluZUxheW91dCgpOworCitwcml2YXRlOgorICAg
IGZyaWVuZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUGlwZWxpbmVMYXlvdXQoUEFM
OjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0JiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBS
ZW1vdGVQaXBlbGluZUxheW91dChjb25zdCBSZW1vdGVQaXBlbGluZUxheW91dCYpID0gZGVsZXRl
OworICAgIFJlbW90ZVBpcGVsaW5lTGF5b3V0KFJlbW90ZVBpcGVsaW5lTGF5b3V0JiYpID0gZGVs
ZXRlOworICAgIFJlbW90ZVBpcGVsaW5lTGF5b3V0JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUGlw
ZWxpbmVMYXlvdXQmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVQaXBlbGluZUxheW91dCYgb3BlcmF0
b3I9KFJlbW90ZVBpcGVsaW5lTGF5b3V0JiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNl
aXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJl
ZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQ+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BV
OjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBp
cGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ODM0ZjhlMWZiOWQxNTcyMzMy
Y2UyZTYyYmFiNmEzODE4MmZjMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMzAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
ICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCitt
ZXNzYWdlcyAtPiBSZW1vdGVQaXBlbGluZUxheW91dCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7Cisg
ICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5
U2V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xMGMzYjk3OGU5MjliMzVjOWI5MDViOTJiOTQ1NGIzN2UwMmIz
ZTk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVRdWVyeVNldC5oIgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlTZXQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1JlbW90ZVF1ZXJ5U2V0OjpSZW1vdGVRdWVyeVNldChQQUw6OldlYkdQVTo6
UXVlcnlTZXQmIHF1ZXJ5U2V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAg
OiBtX2JhY2tpbmcocXVlcnlTZXQpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sK
K30KKworUmVtb3RlUXVlcnlTZXQ6On5SZW1vdGVRdWVyeVNldCgpCit7Cit9CisKK3ZvaWQgUmVt
b3RlUXVlcnlTZXQ6OmRlc3Ryb3koKQoreworfQorCit2b2lkIFJlbW90ZVF1ZXJ5U2V0OjpzZXRM
YWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVlcnlTZXQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVlcnlTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjUwMmViODE3NTRiNTdjYmFhMDc5NDI5YzI4ZTRk
ZTQ1ZTc2OTA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBRdWVyeVNldDsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKwor
Y2xhc3MgUmVtb3RlUXVlcnlTZXQgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlUXVlcnlTZXQ+IGNyZWF0ZShQ
QUw6OldlYkdQVTo6UXVlcnlTZXQmIHF1ZXJ5U2V0LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVj
dEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVRdWVyeVNl
dChxdWVyeVNldCwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVF1
ZXJ5U2V0KCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAg
ICBSZW1vdGVRdWVyeVNldChQQUw6OldlYkdQVTo6UXVlcnlTZXQmLCBXZWJHUFU6Ok9iamVjdEhl
YXAmKTsKKworICAgIFJlbW90ZVF1ZXJ5U2V0KGNvbnN0IFJlbW90ZVF1ZXJ5U2V0JikgPSBkZWxl
dGU7CisgICAgUmVtb3RlUXVlcnlTZXQoUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxldGU7CisgICAg
UmVtb3RlUXVlcnlTZXQmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVRdWVyeVNldCYpID0gZGVsZXRl
OworICAgIFJlbW90ZVF1ZXJ5U2V0JiBvcGVyYXRvcj0oUmVtb3RlUXVlcnlTZXQmJikgPSBkZWxl
dGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgZGVzdHJv
eSgpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJH
UFU6OlF1ZXJ5U2V0PiBtX2JhY2tpbmc7CisgICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9v
YmplY3RIZWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45N2E4MjYwMzQwZWFiZTlmMjAzNjI2ODAxM2EwMjA2OWUwZmI0N2UwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVRdWVyeVNldC5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlUXVlcnlTZXQgTm90UmVmQ291
bnRlZCBTdHJlYW0geworICAgIHZvaWQgRGVzdHJveSgpCisgICAgdm9pZCBTZXRMYWJlbChTdHJp
bmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTExNjUx
ODM1NTEzZTA5Y2E2NzY4NjQ0Yjc4MDZjODg2M2UxNDRjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5jcHAKQEAg
LTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVRdWV1ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UXVldWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVF1ZXVlOjpSZW1vdGVRdWV1
ZShQQUw6OldlYkdQVTo6UXVldWUmIHF1ZXVlLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhl
YXApCisgICAgOiBtX2JhY2tpbmcocXVldWUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVh
cCkKK3sKK30KKworUmVtb3RlUXVldWU6On5SZW1vdGVRdWV1ZSgpCit7Cit9CisKK3ZvaWQgUmVt
b3RlUXVldWU6OnN1Ym1pdChWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJiBjb21tYW5kQnVmZmVy
cykKK3sKKyAgICBVTlVTRURfUEFSQU0oY29tbWFuZEJ1ZmZlcnMpOworfQorCit2b2lkIFJlbW90
ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNhbGxiYWNrKQoreworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7Cit9CisKK3ZvaWQg
UmVtb3RlUXVldWU6OndyaXRlQnVmZmVyKAorICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyLAor
ICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgYnVmZmVyT2Zmc2V0LAorICAgIFZlY3Rvcjx1aW50OF90
PiYmIGRhdGEpCit7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFN
KGJ1ZmZlck9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKGRhdGEpOworfQorCit2b2lkIFJlbW90
ZVF1ZXVlOjp3cml0ZVRleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJl
JiBkZXN0aW5hdGlvbiwKKyAgICBWZWN0b3I8dWludDhfdD4mJiBkYXRhLAorICAgIGNvbnN0IFdl
YkdQVTo6SW1hZ2VEYXRhTGF5b3V0JiBkYXRhTGF5b3V0LAorICAgIGNvbnN0IFdlYkdQVTo6RXh0
ZW50M0QmIHNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKKyAgICBVTlVT
RURfUEFSQU0oZGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGRhdGFMYXlvdXQpOworICAgIFVOVVNF
RF9QQVJBTShzaXplKTsKK30KKwordm9pZCBSZW1vdGVRdWV1ZTo6Y29weUV4dGVybmFsSW1hZ2VU
b1RleHR1cmUoCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBzb3Vy
Y2UsCisgICAgY29uc3QgV2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkJiBkZXN0aW5hdGlv
biwKKyAgICBjb25zdCBXZWJHUFU6OkV4dGVudDNEJiBjb3B5U2l6ZSkKK3sKKyAgICBVTlVTRURf
UEFSQU0oc291cmNlKTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb24pOworICAgIFVOVVNF
RF9QQVJBTShjb3B5U2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlUXVldWU6OnNldExhYmVsKFN0cmlu
ZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmMzAxZGFkMTU4MzNkNjE3NzMyM2Q0Y2RjNjI1YTNlMmJkMmFjZWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVF1ZXVlLmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCisjaW5jbHVkZSAiV2ViR1BVSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsK
K2NsYXNzIFF1ZXVlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQ
VSB7CitzdHJ1Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0
dXJlOworc3RydWN0IEltYWdlQ29weVRleHR1cmVUYWdnZWQ7CitzdHJ1Y3QgSW1hZ2VEYXRhTGF5
b3V0OworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUXVldWUgZmluYWwgOiBw
dWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UmVtb3RlUXVldWU+IGNyZWF0ZShQQUw6OldlYkdQVTo6UXVldWUmIHF1ZXVlLCBXZWJHUFU6
Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVRdWV1ZShxdWV1ZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1
YWwgflJlbW90ZVF1ZXVlKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhl
YXA7CisKKyAgICBSZW1vdGVRdWV1ZShQQUw6OldlYkdQVTo6UXVldWUmLCBXZWJHUFU6Ok9iamVj
dEhlYXAmKTsKKworICAgIFJlbW90ZVF1ZXVlKGNvbnN0IFJlbW90ZVF1ZXVlJikgPSBkZWxldGU7
CisgICAgUmVtb3RlUXVldWUoUmVtb3RlUXVldWUmJikgPSBkZWxldGU7CisgICAgUmVtb3RlUXVl
dWUmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVRdWV1ZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVF1
ZXVlJiBvcGVyYXRvcj0oUmVtb3RlUXVldWUmJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc3VibWl0KFZlY3RvcjxXZWJHUFVJZGVudGlm
aWVyPiYmKTsKKworICAgIHZvaWQgb25TdWJtaXR0ZWRXb3JrRG9uZShXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisKKyAgICB2b2lkIHdyaXRlQnVmZmVyKAorICAgICAgICBXZWJH
UFVJZGVudGlmaWVyLAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGJ1ZmZlck9mZnNldCwK
KyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+JiYpOworCisgICAgdm9pZCB3cml0ZVRleHR1cmUoCisg
ICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sCisgICAg
ICAgIFZlY3Rvcjx1aW50OF90PiYmLAorICAgICAgICBjb25zdCBXZWJHUFU6OkltYWdlRGF0YUxh
eW91dCYsCisgICAgICAgIGNvbnN0IFdlYkdQVTo6RXh0ZW50M0QmIHNpemUpOworCisgICAgdm9p
ZCBjb3B5RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZSgKKyAgICAgICAgY29uc3QgV2ViR1BVOjpJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlJiBzb3VyY2UsCisgICAgICAgIGNvbnN0IFdlYkdQVTo6SW1hZ2VD
b3B5VGV4dHVyZVRhZ2dlZCYgZGVzdGluYXRpb24sCisgICAgICAgIGNvbnN0IFdlYkdQVTo6RXh0
ZW50M0QmIGNvcHlTaXplKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAg
UmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVj
dEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmY3NjBiYjMyNmQ1Mjg5ZWU0YjRhY2YyMGJjYzc4YmE0MTczNGY1ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUXVldWUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNSBAQAorLyogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVF1ZXVlIE5vdFJlZkNvdW50
ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFN1Ym1pdChWZWN0b3I8V2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyPiBjb21tYW5kQnVmZmVycykKKyAgICB2b2lkIE9uU3VibWl0dGVkV29ya0RvbmUoKSAtPiAo
KSBTeW5jaHJvbm91cworICAgIHZvaWQgV3JpdGVCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgYnVmZmVyT2Zmc2V0LCBWZWN0b3I8
dWludDhfdD4gZGF0YSkKKyAgICB2b2lkIFdyaXRlVGV4dHVyZShXZWJLaXQ6OldlYkdQVTo6SW1h
Z2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEsIFdlYktpdDo6
V2ViR1BVOjpJbWFnZURhdGFMYXlvdXQgaW1hZ2VEYXRhTGF5b3V0LCBXZWJLaXQ6OldlYkdQVTo6
RXh0ZW50M0Qgc2l6ZSkKKyAgICB2b2lkIENvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKFdlYktp
dDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlIHNvdXJjZSwgV2ViS2l0OjpXZWJHUFU6
OkltYWdlQ29weVRleHR1cmVUYWdnZWQgZGVzdGluYXRpb24sIFdlYktpdDo6V2ViR1BVOjpFeHRl
bnQzRCBjb3B5U2l6ZSkKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVJlbmRlckJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk0MDU3OWUyZDkw
ZTZhYjAxOWYzNWQwYjk2NzE0ZTkxMzY4MzhlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZVJlbmRlckJ1bmRsZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUmVuZGVyQnVuZGxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVS
ZW5kZXJCdW5kbGU6OlJlbW90ZVJlbmRlckJ1bmRsZShQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
JiByZW5kZXJCdW5kbGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkKKyAgICA6IG1f
YmFja2luZyhyZW5kZXJCdW5kbGUpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0SGVhcCkKK3sK
K30KKworUmVtb3RlUmVuZGVyQnVuZGxlOjp+UmVtb3RlUmVuZGVyQnVuZGxlKCkKK3sKK30KKwor
dm9pZCBSZW1vdGVSZW5kZXJCdW5kbGU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAg
IFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGUuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2UyYWIwNGZjYjE0NTY5ZmVhM2RlNWI5NGQ3OTVhNGNkNGJmNzI4OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UmVuZGVyQnVuZGxlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFBBTDo6
V2ViR1BVIHsKK2NsYXNzIFJlbmRlckJ1bmRsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3Rl
UmVuZGVyQnVuZGxlIGZpbmFsIDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVJlbmRlckJ1bmRsZT4gY3JlYXRlKFBBTDo6
V2ViR1BVOjpSZW5kZXJCdW5kbGUmIHJlbmRlckJ1bmRsZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBv
YmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVu
ZGVyQnVuZGxlKHJlbmRlckJ1bmRsZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1
YWwgflJlbW90ZVJlbmRlckJ1bmRsZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBP
YmplY3RIZWFwOworCisgICAgUmVtb3RlUmVuZGVyQnVuZGxlKFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJlbW90ZVJlbmRlckJ1bmRsZShj
b25zdCBSZW1vdGVSZW5kZXJCdW5kbGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJCdW5k
bGUoUmVtb3RlUmVuZGVyQnVuZGxlJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRs
ZSYgb3BlcmF0b3I9KGNvbnN0IFJlbW90ZVJlbmRlckJ1bmRsZSYpID0gZGVsZXRlOworICAgIFJl
bW90ZVJlbmRlckJ1bmRsZSYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlckJ1bmRsZSYmKSA9IGRlbGV0
ZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzZXRMYWJl
bChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4gbV9iYWNr
aW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzEy
MjZjZjdmODEwZmVkMGM3OTRmMDAyYjdmZWMyNzc0Mzg1MDAwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5k
bGUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlckJ1bmRsZSBOb3RSZWZDb3VudGVk
IFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE2
NTI3ZjJmZjk5OTQ4MzU1NGU1OWRmOGQ0NWZkYmZlY2RjYjliMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlci5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oIgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0SGVhcC5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6UmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2RlcihQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciYgcmVu
ZGVyQnVuZGxlRW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDog
bV9iYWNraW5nKHJlbmRlckJ1bmRsZUVuY29kZXIpCisgICAgLCBtX29iamVjdEhlYXAob2JqZWN0
SGVhcCkKK3sKK30KKworUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6flJlbW90ZVJlbmRlckJ1
bmRsZUVuY29kZXIoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnNl
dFBpcGVsaW5lKFdlYkdQVUlkZW50aWZpZXIgcmVuZGVyUGlwZWxpbmUpCit7CisgICAgVU5VU0VE
X1BBUkFNKHJlbmRlclBpcGVsaW5lKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNv
ZGVyOjpzZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6
OkluZGV4Rm9ybWF0IGluZGV4Rm9ybWF0LCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplKQoreworICAgIFVOVVNFRF9QQVJB
TShidWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShpbmRleEZvcm1hdCk7CisgICAgVU5VU0VEX1BB
UkFNKG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBz
bG90LCBXZWJHUFVJZGVudGlmaWVyIGJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURf
UEFSQU0oc2xvdCk7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFN
KG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRl
ckJ1bmRsZUVuY29kZXI6OmRyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFM
OjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgIFBBTDo6V2ViR1BVOjpTaXplMzIg
Zmlyc3RWZXJ0ZXgsIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSkKK3sKKyAgICBV
TlVTRURfUEFSQU0odmVydGV4Q291bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50
KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RWZXJ0ZXgpOworICAgIFVOVVNFRF9QQVJBTShmaXJz
dEluc3RhbmNlKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5k
ZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIg
aW5zdGFuY2VDb3VudCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5kZXgsCisgICAg
UEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCisgICAgUEFMOjpXZWJHUFU6
OlNpemUzMiBmaXJzdEluc3RhbmNlKQoreworICAgIFVOVVNFRF9QQVJBTShpbmRleENvdW50KTsK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0
SW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShiYXNlVmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0o
Zmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZHJh
d0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpT
aXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVy
KTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZzZXQpOworfQorCit2b2lkIFJlbW90ZVJl
bmRlckJ1bmRsZUVuY29kZXI6OmRyYXdJbmRleGVkSW5kaXJlY3QoV2ViR1BVSWRlbnRpZmllciBp
bmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0oaW5kaXJlY3RCdWZmZXIpOworICAgIFVOVVNFRF9QQVJBTShpbmRpcmVj
dE9mZnNldCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0QmluZEdy
b3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJHUFVJZGVudGlmaWVyIGJpbmRHcm91
cCwKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09m
ZnNldD4+JiYgZHluYW1pY09mZnNldHMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKKyAg
ICBVTlVTRURfUEFSQU0oYmluZEdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNl
dHMpOworfQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3Vw
KFN0cmluZyYmIGdyb3VwTGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOwor
fQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6OnBvcERlYnVnR3JvdXAoKQorewor
fQorCit2b2lkIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0
cmluZyYmIG1hcmtlckxhYmVsKQoreworICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdlYkdQVTo6
UmVuZGVyQnVuZGxlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKKyAgICBVTlVTRURfUEFS
QU0oaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0
TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlckJ1bmRsZUVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjk4NTIy
MTA0Nzc0NzUyYTBkNTFkNTM3ZTZkNTYyN2M3Yjk5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVu
Y29kZXIuaApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVSW5kZXhGb3JtYXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFz
cyBSZW5kZXJCdW5kbGVFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNw
YWNlIFdlYkdQVSB7CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFJlbmRlckJ1bmRsZURlc2Ny
aXB0b3I7Cit9CisKK2NsYXNzIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIgZmluYWwgOiBwdWJs
aWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcj4gY3JlYXRlKFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5k
bGVFbmNvZGVyJiByZW5kZXJCdW5kbGVFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVj
dEhlYXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJC
dW5kbGVFbmNvZGVyKHJlbmRlckJ1bmRsZUVuY29kZXIsIG9iamVjdEhlYXApKTsKKyAgICB9CisK
KyAgICB+UmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcigpOworCitwcml2YXRlOgorICAgIGZyaWVu
ZCBjbGFzcyBPYmplY3RIZWFwOworCisgICAgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihQQUw6
OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciYsIFdlYkdQVTo6T2JqZWN0SGVhcCYpOworCisg
ICAgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNv
ZGVyJikgPSBkZWxldGU7CisgICAgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlcihSZW1vdGVSZW5k
ZXJCdW5kbGVFbmNvZGVyJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29k
ZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyJikgPSBkZWxldGU7
CisgICAgUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2RlciYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlckJ1
bmRsZUVuY29kZXImJikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNz
YWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworICAgIHZvaWQgc2V0UGlwZWxpbmUoV2ViR1BVSWRlbnRpZmllcik7CisKKyAgICB2b2lk
IHNldEluZGV4QnVmZmVyKFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1h
dCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlNpemU2ND4pOworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVyKFBBTDo6V2ViR1BVOjpJbmRleDMy
IHNsb3QsIFdlYkdQVUlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+KTsKKworICAgIHZvaWQgZHJhdyhQQUw6Oldl
YkdQVTo6U2l6ZTMyIHZlcnRleENvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291
bnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RWZXJ0ZXgsIFBBTDo6V2ViR1BV
OjpTaXplMzIgZmlyc3RJbnN0YW5jZSk7CisgICAgdm9pZCBkcmF3SW5kZXhlZChQQUw6OldlYkdQ
VTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwK
KyAgICAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LAorICAgICAgICBQQUw6Oldl
YkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNp
emUzMiBmaXJzdEluc3RhbmNlKTsKKworICAgIHZvaWQgZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50
aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQp
OworICAgIHZvaWQgZHJhd0luZGV4ZWRJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0
QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsKKworICAgIHZvaWQg
c2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyLCBXZWJHUFVJZGVudGlmaWVyLAorICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQQUw6OldlYkdQVTo6QnVmZmVyRHluYW1pY09mZnNl
dD4+JiYgZHluYW1pY09mZnNldHMpOworCisgICAgdm9pZCBwdXNoRGVidWdHcm91cChTdHJpbmcm
JiBncm91cExhYmVsKTsKKyAgICB2b2lkIHBvcERlYnVnR3JvdXAoKTsKKyAgICB2b2lkIGluc2Vy
dERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKTsKKworICAgIHZvaWQgZmluaXNoKGNv
bnN0IFdlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOwor
CisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJl
bmRlckJ1bmRsZUVuY29kZXI+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFw
PiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVu
ZGxlRW5jb2Rlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2Y3Y2Y5MDM3MGNjNjcyOTE0ZjFm
MjJlMTM0MDg3ZmE5ZGUxMmNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLm1lc3NhZ2Vz
LmluCkBAIC0wLDAgKzEsNDIgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CittZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyIE5vdFJlZkNvdW50ZWQgU3Ry
ZWFtIHsKKyAgICB2b2lkIFNldFBpcGVsaW5lKFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQorICAgIHZvaWQgU2V0SW5kZXhCdWZmZXIoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCBpbmRleEZvcm1hdCwgUEFMOjpX
ZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4g
c2l6ZSkKKyAgICB2b2lkIFNldFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90
LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6OlNpemU2
NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2
b2lkIERyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNp
emUzMiBpbnN0YW5jZUNvdW50LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6
OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCisgICAgdm9pZCBEcmF3SW5kZXhlZChQQUw6
OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VD
b3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluZGV4LCBQQUw6OldlYkdQVTo6U2lnbmVk
T2Zmc2V0MzIgYmFzZVZlcnRleCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdEluc3RhbmNlKQor
ICAgIHZvaWQgRHJhd0luZGlyZWN0KFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1
ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVjdE9mZnNldCkKKyAgICB2b2lkIERyYXdJ
bmRleGVkSW5kaXJlY3QoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQ
QUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KQorICAgIHZvaWQgU2V0QmluZEdyb3Vw
KFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllciwgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNP
ZmZzZXQ+PiBkeW5hbWljT2Zmc2V0cykKKyAgICB2b2lkIFB1c2hEZWJ1Z0dyb3VwKFN0cmluZyBn
cm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91cCgpCisgICAgdm9pZCBJbnNlcnREZWJ1
Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAgdm9pZCBGaW5pc2goV2ViS2l0OjpXZWJH
UFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCisgICAgdm9pZCBTZXRMYWJlbChTdHJpbmcgbGFiZWwpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMWM5NzI5Y2UxYWQwOTU4NjNmNjUwNDMzMGY5ZDUyMTVlNjQ1OTJhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlci5jcHAKQEAgLTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6UmVtb3RlUmVu
ZGVyUGFzc0VuY29kZXIoUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiByZW5kZXJQYXNz
RW5jb2RlciwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5n
KHJlbmRlclBhc3NFbmNvZGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9
CisKK1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjp+UmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoKQor
eworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShXZWJHUFVJ
ZGVudGlmaWVyIHJlbmRlclBpcGVsaW5lKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJQaXBl
bGluZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNldEluZGV4QnVmZmVy
KFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQgaW5kZXhG
b3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaXplNjQ+IHNpemUpCit7CisgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5V
U0VEX1BBUkFNKGluZGV4Rm9ybWF0KTsKKyAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKKyAgICBV
TlVTRURfUEFSQU0oc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVy
IGJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlNpemU2ND4gc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc2xvdCk7CisgICAgVU5V
U0VEX1BBUkFNKGJ1ZmZlcik7CisgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgVU5VU0VE
X1BBUkFNKHNpemUpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KFBB
TDo6V2ViR1BVOjpTaXplMzIgdmVydGV4Q291bnQsIFBBTDo6V2ViR1BVOjpTaXplMzIgaW5zdGFu
Y2VDb3VudCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQ
VTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHZlcnRleENvdW50
KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKGZp
cnN0VmVydGV4KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmRyYXdJbmRleGVkKFBBTDo6V2ViR1BVOjpTaXplMzIg
aW5kZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgIFBBTDo6
V2ViR1BVOjpTaXplMzIgZmlyc3RJbmRleCwKKyAgICBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0
MzIgYmFzZVZlcnRleCwKKyAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCit7
CisgICAgVU5VU0VEX1BBUkFNKGluZGV4Q291bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZUNvdW50KTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RJbmRleCk7CisgICAgVU5VU0VEX1BBUkFN
KGJhc2VWZXJ0ZXgpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKK30KKwordm9p
ZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIg
aW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpTaXplNjQgaW5kaXJlY3RPZmZzZXQpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJl
Y3RPZmZzZXQpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhl
ZEluZGlyZWN0KFdlYkdQVUlkZW50aWZpZXIgaW5kaXJlY3RCdWZmZXIsIFBBTDo6V2ViR1BVOjpT
aXplNjQgaW5kaXJlY3RPZmZzZXQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0QnVmZmVy
KTsKKyAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoUEFMOjpXZWJHUFU6OkluZGV4MzIgaW5kZXgs
IFdlYkdQVUlkZW50aWZpZXIgYmluZEdyb3VwLAorICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBB
TDo6V2ViR1BVOjpCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cykKK3sKKyAg
ICBVTlVTRURfUEFSQU0oaW5kZXgpOworICAgIFVOVVNFRF9QQVJBTShiaW5kR3JvdXApOworICAg
IFVOVVNFRF9QQVJBTShkeW5hbWljT2Zmc2V0cyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFz
c0VuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCit7CisgICAgVU5V
U0VEX1BBUkFNKGdyb3VwTGFiZWwpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
Ojpwb3BEZWJ1Z0dyb3VwKCkKK3sKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6
aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCit7CisgICAgVU5VU0VEX1BB
UkFNKG1hcmtlckxhYmVsKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
Vmlld3BvcnQoZmxvYXQgeCwgZmxvYXQgeSwKKyAgICBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0
LAorICAgIGZsb2F0IG1pbkRlcHRoLCBmbG9hdCBtYXhEZXB0aCkKK3sKKyAgICBVTlVTRURfUEFS
QU0oeCk7CisgICAgVU5VU0VEX1BBUkFNKHkpOworICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7Cisg
ICAgVU5VU0VEX1BBUkFNKGhlaWdodCk7CisgICAgVU5VU0VEX1BBUkFNKG1pbkRlcHRoKTsKKyAg
ICBVTlVTRURfUEFSQU0obWF4RGVwdGgpOworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNv
ZGVyOjpzZXRTY2lzc29yUmVjdChQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeCwgUEFM
OjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHksCisgICAgUEFMOjpXZWJHUFU6OkludGVnZXJD
b29yZGluYXRlIHdpZHRoLCBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0KQor
eworICAgIFVOVVNFRF9QQVJBTSh4KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CisgICAgVU5VU0VE
X1BBUkFNKHdpZHRoKTsKKyAgICBVTlVTRURfUEFSQU0oaGVpZ2h0KTsKK30KKwordm9pZCBSZW1v
dGVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0QmxlbmRDb25zdGFudChXZWJHUFU6OkNvbG9yIGNvbG9y
KQoreworICAgIFVOVVNFRF9QQVJBTShjb2xvcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyUGFz
c0VuY29kZXI6OnNldFN0ZW5jaWxSZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSBz
dGVuY2lsVmFsdWUpCit7CisgICAgVU5VU0VEX1BBUkFNKHN0ZW5jaWxWYWx1ZSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXI6OmJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJH
UFU6OlNpemUzMiBxdWVyeUluZGV4KQoreworICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZW5kT2NjbHVzaW9uUXVlcnkoKQor
eworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyOjpiZWdpblBpcGVsaW5lU3RhdGlz
dGljc1F1ZXJ5KFdlYkdQVUlkZW50aWZpZXIgcXVlcnlTZXQsIFBBTDo6V2ViR1BVOjpTaXplMzIg
cXVlcnlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0ocXVlcnlTZXQpOworICAgIFVOVVNFRF9Q
QVJBTShxdWVyeUluZGV4KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZW5k
UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyOjpleGVjdXRlQnVuZGxlcyhWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4mJiByZW5kZXJC
dW5kbGVzKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJCdW5kbGVzKTsKK30KKwordm9pZCBS
ZW1vdGVSZW5kZXJQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVu
ZGVyUGFzc0VuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQoreworICAgIFVOVVNFRF9Q
QVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI5M2Y2ODllMzI5ZmQ2NTYxODk2NTQ4YWQxYTE0OThjMjExMDk5MWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUNvbG9yLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW5k
ZXhGb3JtYXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFs
VHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBSZW5kZXJQYXNzRW5jb2Rl
cjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3Mg
T2JqZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIgZmluYWwgOiBw
dWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UmVtb3RlUmVuZGVyUGFzc0VuY29kZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6UmVuZGVyUGFz
c0VuY29kZXImIHJlbmRlclBhc3NFbmNvZGVyLCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhl
YXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZW5kZXJQYXNz
RW5jb2RlcihyZW5kZXJQYXNzRW5jb2Rlciwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIH5S
ZW1vdGVSZW5kZXJQYXNzRW5jb2RlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBP
YmplY3RIZWFwOworCisgICAgUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIoUEFMOjpXZWJHUFU6OlJl
bmRlclBhc3NFbmNvZGVyJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVSZW5k
ZXJQYXNzRW5jb2Rlcihjb25zdCBSZW1vdGVSZW5kZXJQYXNzRW5jb2RlciYpID0gZGVsZXRlOwor
ICAgIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyKFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0g
ZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyJiBvcGVyYXRvcj0oY29uc3QgUmVt
b3RlUmVuZGVyUGFzc0VuY29kZXImKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVSZW5kZXJQYXNzRW5j
b2RlciYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlclBhc3NFbmNvZGVyJiYpID0gZGVsZXRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNldFBpcGVsaW5lKFdl
YkdQVUlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRJbmRleEJ1ZmZlcihXZWJHUFVJZGVudGlm
aWVyLCBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0
LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+KTsKKyAgICB2b2lkIHNldFZlcnRl
eEJ1ZmZlcihQQUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJHUFVJZGVudGlmaWVyLCBQQUw6
OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0
Pik7CisKKyAgICB2b2lkIGRyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0ZXhDb3VudCwgUEFM
OjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LAorICAgICAgICBQQUw6OldlYkdQVTo6U2l6
ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpOworICAg
IHZvaWQgZHJhd0luZGV4ZWQoUEFMOjpXZWJHUFU6OlNpemUzMiBpbmRleENvdW50LCBQQUw6Oldl
YkdQVTo6U2l6ZTMyIGluc3RhbmNlQ291bnQsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIg
Zmlyc3RJbmRleCwKKyAgICAgICAgUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyIGJhc2VWZXJ0
ZXgsCisgICAgICAgIFBBTDo6V2ViR1BVOjpTaXplMzIgZmlyc3RJbnN0YW5jZSk7CisKKyAgICB2
b2lkIGRyYXdJbmRpcmVjdChXZWJHUFVJZGVudGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6Oldl
YkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0KTsKKyAgICB2b2lkIGRyYXdJbmRleGVkSW5kaXJl
Y3QoV2ViR1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBp
bmRpcmVjdE9mZnNldCk7CisKKyAgICB2b2lkIHNldEJpbmRHcm91cChQQUw6OldlYkdQVTo6SW5k
ZXgzMiwgV2ViR1BVSWRlbnRpZmllciwKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFM
OjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiYmIGR5bmFtaWNPZmZzZXRzKTsKKworICAg
IHZvaWQgcHVzaERlYnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCk7CisgICAgdm9pZCBwb3BE
ZWJ1Z0dyb3VwKCk7CisgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJM
YWJlbCk7CisKKyAgICB2b2lkIHNldFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0IHksCisgICAgICAg
IGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsCisgICAgICAgIGZsb2F0IG1pbkRlcHRoLCBmbG9h
dCBtYXhEZXB0aCk7CisKKyAgICB2b2lkIHNldFNjaXNzb3JSZWN0KFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZSB4LCBQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeSwKKyAgICAg
ICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHdpZHRoLCBQQUw6OldlYkdQVTo6SW50
ZWdlckNvb3JkaW5hdGUgaGVpZ2h0KTsKKworICAgIHZvaWQgc2V0QmxlbmRDb25zdGFudChXZWJH
UFU6OkNvbG9yKTsKKyAgICB2b2lkIHNldFN0ZW5jaWxSZWZlcmVuY2UoUEFMOjpXZWJHUFU6OlN0
ZW5jaWxWYWx1ZSk7CisKKyAgICB2b2lkIGJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6
OlNpemUzMiBxdWVyeUluZGV4KTsKKyAgICB2b2lkIGVuZE9jY2x1c2lvblF1ZXJ5KCk7CisKKyAg
ICB2b2lkIGJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoV2ViR1BVSWRlbnRpZmllciwgUEFM
OjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KTsKKyAgICB2b2lkIGVuZFBpcGVsaW5lU3RhdGlz
dGljc1F1ZXJ5KCk7CisKKyAgICB2b2lkIGV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxXZWJHUFVJZGVu
dGlmaWVyPiYmKTsKKyAgICB2b2lkIGVuZFBhc3MoKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3Ry
aW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4gbV9iYWNr
aW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZThiN2JhYWE4ZWFjMDliMzc1Y2ZiYTc4NGE5ZDMyOGJkZDZiNmFlZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UmVuZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw1MSBAQAorLyogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAq
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlclBhc3NF
bmNvZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldFBpcGVsaW5lKFdlYktp
dDo6V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgU2V0SW5kZXhCdWZmZXIo
V2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6V2ViR1BVOjpJbmRleEZv
cm1hdCBpbmRleEZvcm1hdCwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIFNldFZlcnRleEJ1ZmZlcihQ
QUw6OldlYkdQVTo6SW5kZXgzMiBzbG90LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OlNpemU2ND4gc2l6ZSkKKyAgICB2b2lkIERyYXcoUEFMOjpXZWJHUFU6OlNpemUzMiB2ZXJ0
ZXhDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBpbnN0YW5jZUNvdW50LCBQQUw6OldlYkdQVTo6
U2l6ZTMyIGZpcnN0VmVydGV4LCBQQUw6OldlYkdQVTo6U2l6ZTMyIGZpcnN0SW5zdGFuY2UpCisg
ICAgdm9pZCBEcmF3SW5kZXhlZChQQUw6OldlYkdQVTo6U2l6ZTMyIGluZGV4Q291bnQsIFBBTDo6
V2ViR1BVOjpTaXplMzIgaW5zdGFuY2VDb3VudCwgUEFMOjpXZWJHUFU6OlNpemUzMiBmaXJzdElu
ZGV4LCBQQUw6OldlYkdQVTo6U2lnbmVkT2Zmc2V0MzIgYmFzZVZlcnRleCwgUEFMOjpXZWJHUFU6
OlNpemUzMiBmaXJzdEluc3RhbmNlKQorICAgIHZvaWQgRHJhd0luZGlyZWN0KFdlYktpdDo6V2Vi
R1BVSWRlbnRpZmllciBpbmRpcmVjdEJ1ZmZlciwgUEFMOjpXZWJHUFU6OlNpemU2NCBpbmRpcmVj
dE9mZnNldCkKKyAgICB2b2lkIERyYXdJbmRleGVkSW5kaXJlY3QoV2ViS2l0OjpXZWJHUFVJZGVu
dGlmaWVyIGluZGlyZWN0QnVmZmVyLCBQQUw6OldlYkdQVTo6U2l6ZTY0IGluZGlyZWN0T2Zmc2V0
KQorICAgIHZvaWQgU2V0QmluZEdyb3VwKFBBTDo6V2ViR1BVOjpJbmRleDMyIGluZGV4LCBXZWJL
aXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFM
OjpXZWJHUFU6OkJ1ZmZlckR5bmFtaWNPZmZzZXQ+PiBkeW5hbWljT2Zmc2V0cykKKyAgICB2b2lk
IFB1c2hEZWJ1Z0dyb3VwKFN0cmluZyBncm91cExhYmVsKQorICAgIHZvaWQgUG9wRGVidWdHcm91
cCgpCisgICAgdm9pZCBJbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcgbWFya2VyTGFiZWwpCisgICAg
dm9pZCBTZXRWaWV3cG9ydChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVp
Z2h0LCBmbG9hdCBtaW5EZXB0aCwgZmxvYXQgbWF4RGVwdGgpCisgICAgdm9pZCBTZXRTY2lzc29y
UmVjdChQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGUgeCwgUEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlIHksIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aCwgUEFM
OjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGhlaWdodCkKKyAgICB2b2lkIFNldEJsZW5kQ29u
c3RhbnQoV2ViS2l0OjpXZWJHUFU6OkNvbG9yIGNvbG9yKQorICAgIHZvaWQgU2V0U3RlbmNpbFJl
ZmVyZW5jZShQQUw6OldlYkdQVTo6U3RlbmNpbFZhbHVlIHN0ZW5jaWxWYWx1ZSkKKyAgICB2b2lk
IEJlZ2luT2NjbHVzaW9uUXVlcnkoUEFMOjpXZWJHUFU6OlNpemUzMiBxdWVyeUluZGV4KQorICAg
IHZvaWQgRW5kT2NjbHVzaW9uUXVlcnkoKQorICAgIHZvaWQgQmVnaW5QaXBlbGluZVN0YXRpc3Rp
Y3NRdWVyeShXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpXZWJHUFU6
OlNpemUzMiBxdWVyeUluZGV4KQorICAgIHZvaWQgRW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnko
KQorICAgIHZvaWQgRXhlY3V0ZUJ1bmRsZXMoVmVjdG9yPFdlYktpdDo6V2ViR1BVSWRlbnRpZmll
cj4gYnVuZGxlcykKKyAgICB2b2lkIEVuZFBhc3MoKQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5n
IGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJQaXBlbGluZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2E0MGE5MDM2NDk5MWVjNjRkZDMwYjQwZGRiZTc2YmJlOTdmMTc1MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUmVuZGVyUGlwZWxpbmUuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyUGlwZWxpbmUuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVSZW5kZXJQaXBlbGluZTo6UmVtb3RlUmVuZGVyUGlw
ZWxpbmUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lJiByZW5kZXJQaXBlbGluZSwgV2ViR1BV
OjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHJlbmRlclBpcGVsaW5l
KQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVJlbmRlclBp
cGVsaW5lOjp+UmVtb3RlUmVuZGVyUGlwZWxpbmUoKQoreworfQorCit2b2lkIFJlbW90ZVJlbmRl
clBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgsIFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5kZXgpOworICAgIFVOVVNF
RF9QQVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJQaXBlbGluZTo6c2V0
TGFiZWwoU3RyaW5nJiYgbGFiZWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGxhYmVsKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVJlbmRlclBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRlODhmY2FlNjk1MTgwNThj
MjRmOWQxZWQ3NzI5NTIxY2U5OThjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuaApAQCAtMCww
ICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJX
ZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgUEFMOjpXZWJHUFUgeworY2xhc3MgUmVuZGVy
UGlwZWxpbmU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViR1BVIHsK
K2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVJlbmRlclBpcGVsaW5lIGZpbmFs
IDogcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoUEFMOjpXZWJHUFU6OlJlbmRlclBp
cGVsaW5lJiByZW5kZXJQaXBlbGluZSwgV2ViR1BVOjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVuZGVyUGlwZWxpbmUo
cmVuZGVyUGlwZWxpbmUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1v
dGVSZW5kZXJQaXBlbGluZSgpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RI
ZWFwOworCisgICAgUmVtb3RlUmVuZGVyUGlwZWxpbmUoUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVs
aW5lJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZShj
b25zdCBSZW1vdGVSZW5kZXJQaXBlbGluZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRlclBp
cGVsaW5lKFJlbW90ZVJlbmRlclBpcGVsaW5lJiYpID0gZGVsZXRlOworICAgIFJlbW90ZVJlbmRl
clBpcGVsaW5lJiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlUmVuZGVyUGlwZWxpbmUmKSA9IGRlbGV0
ZTsKKyAgICBSZW1vdGVSZW5kZXJQaXBlbGluZSYgb3BlcmF0b3I9KFJlbW90ZVJlbmRlclBpcGVs
aW5lJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6
OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICB2b2lkIGdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRleCwgV2ViR1BVSWRlbnRpZmll
cik7CisKKyAgICB2b2lkIHNldExhYmVsKFN0cmluZyYmKTsKKworICAgIFJlZjxQQUw6OldlYkdQ
VTo6UmVuZGVyUGlwZWxpbmU+IG1fYmFja2luZzsKKyAgICBSZWY8V2ViR1BVOjpPYmplY3RIZWFw
PiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5l
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjODc5NDc3NGUwODY4MWRkOGQwYWIwZjEwNjI4N2Zm
MmYzM2MzNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVJlbmRlclBpcGVsaW5lLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBS
ZW1vdGVSZW5kZXJQaXBlbGluZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBHZXRC
aW5kR3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgsIFdlYktpdDo6V2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKTsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVTYW1wbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjI0NmM4YzU2MGE3NzJhYmFlZTgwNGM2
MWQ1NTg4YTA3NjU2ZDFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmNwcApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZXIu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhl
YXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVNhbXBsZXI6OlJlbW90ZVNhbXBsZXIoUEFMOjpX
ZWJHUFU6OlNhbXBsZXImIHNhbXBsZXIsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVhcCkK
KyAgICA6IG1fYmFja2luZyhzYW1wbGVyKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXAp
Cit7Cit9CisKK1JlbW90ZVNhbXBsZXI6On5SZW1vdGVTYW1wbGVyKCkKK3sKK30KKwordm9pZCBS
ZW1vdGVTYW1wbGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFS
QU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVTYW1wbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhjOTcxZTEwNjlhMWE2
Njc1ZDljM2IyODVkMTZhNmZlNzE3ZTJjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5oCkBAIC0wLDAgKzEs
NzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQ
VUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBTYW1wbGVyOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7CitjbGFzcyBPYmpl
Y3RIZWFwOworfQorCitjbGFzcyBSZW1vdGVTYW1wbGVyIGZpbmFsIDogcHVibGljIElQQzo6U3Ry
ZWFtTWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBs
ZXI+IGNyZWF0ZShQQUw6OldlYkdQVTo6U2FtcGxlciYgc2FtcGxlciwgV2ViR1BVOjpPYmplY3RI
ZWFwJiBvYmplY3RIZWFwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3RlU2FtcGxlcihzYW1wbGVyLCBvYmplY3RIZWFwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+
UmVtb3RlU2FtcGxlcigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBPYmplY3RIZWFw
OworCisgICAgUmVtb3RlU2FtcGxlcihQQUw6OldlYkdQVTo6U2FtcGxlciYsIFdlYkdQVTo6T2Jq
ZWN0SGVhcCYpOworCisgICAgUmVtb3RlU2FtcGxlcihjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBk
ZWxldGU7CisgICAgUmVtb3RlU2FtcGxlcihSZW1vdGVTYW1wbGVyJiYpID0gZGVsZXRlOworICAg
IFJlbW90ZVNhbXBsZXImIG9wZXJhdG9yPShjb25zdCBSZW1vdGVTYW1wbGVyJikgPSBkZWxldGU7
CisgICAgUmVtb3RlU2FtcGxlciYgb3BlcmF0b3I9KFJlbW90ZVNhbXBsZXImJikgPSBkZWxldGU7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgc2V0TGFiZWwo
U3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpTYW1wbGVyPiBtX2JhY2tpbmc7Cisg
ICAgUmVmPFdlYkdQVTo6T2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNhbXBsZXIu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVNhbXBsZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNkYWMxYjY5Y2M3NmU2MjQ4OTFl
ODhlYWQ4ZDFkNGE3MDZlNTUxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDMwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
ICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMg
LT4gUmVtb3RlU2FtcGxlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgdm9pZCBTZXRMYWJl
bChTdHJpbmcgbGFiZWwpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk3ZWYwOTNkNzc5YWE3NzFkZWRmZWNlODFlNThlZjg0N2U4ZGM0NGQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVNoYWRlck1vZHVsZS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVTaGFkZXJNb2R1bGUuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmVtb3RlU2hhZGVyTW9kdWxlOjpSZW1vdGVTaGFkZXJNb2R1bGUo
UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSYgc2hhZGVyTW9kdWxlLCBXZWJHUFU6Ok9iamVjdEhl
YXAmIG9iamVjdEhlYXApCisgICAgOiBtX2JhY2tpbmcoc2hhZGVyTW9kdWxlKQorICAgICwgbV9v
YmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVNoYWRlck1vZHVsZTo6flJlbW90
ZVNoYWRlck1vZHVsZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlU2hhZGVyTW9kdWxlOjpjb21waWxh
dGlvbkluZm8oV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJHUFU6OkNvbXBp
bGF0aW9uTWVzc2FnZT4mJik+JiYgY2FsbGJhY2spCit7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxi
YWNrKTsKK30KKwordm9pZCBSZW1vdGVTaGFkZXJNb2R1bGU6OnNldExhYmVsKFN0cmluZyYmIGxh
YmVsKQoreworICAgIFVOVVNFRF9QQVJBTShsYWJlbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGUuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9k
dWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmExMjBjMGI1MzgwOTFiYTc0ZGZmNDEwMzBhMWZjOTRkOWUzYjk0
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU3Ry
ZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdl
LmgiCisjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6Oldl
YkdQVSB7CitjbGFzcyBTaGFkZXJNb2R1bGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgV2ViR1BVIHsKK2NsYXNzIE9iamVjdEhlYXA7Cit9CisKK2NsYXNzIFJlbW90ZVNo
YWRlck1vZHVsZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVTaGFkZXJNb2R1bGU+IGNyZWF0ZShQQUw6Oldl
YkdQVTo6U2hhZGVyTW9kdWxlJiBzaGFkZXJNb2R1bGUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2Jq
ZWN0SGVhcCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNoYWRl
ck1vZHVsZShzaGFkZXJNb2R1bGUsIG9iamVjdEhlYXApKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IH5SZW1vdGVTaGFkZXJNb2R1bGUoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2Jq
ZWN0SGVhcDsKKworICAgIFJlbW90ZVNoYWRlck1vZHVsZShQQUw6OldlYkdQVTo6U2hhZGVyTW9k
dWxlJiwgV2ViR1BVOjpPYmplY3RIZWFwJik7CisKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUoY29u
c3QgUmVtb3RlU2hhZGVyTW9kdWxlJikgPSBkZWxldGU7CisgICAgUmVtb3RlU2hhZGVyTW9kdWxl
KFJlbW90ZVNoYWRlck1vZHVsZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVTaGFkZXJNb2R1bGUm
IG9wZXJhdG9yPShjb25zdCBSZW1vdGVTaGFkZXJNb2R1bGUmKSA9IGRlbGV0ZTsKKyAgICBSZW1v
dGVTaGFkZXJNb2R1bGUmIG9wZXJhdG9yPShSZW1vdGVTaGFkZXJNb2R1bGUmJikgPSBkZWxldGU7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgY29tcGlsYXRp
b25JbmZvKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxh
dGlvbk1lc3NhZ2U+JiYpPiYmKTsKKworICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGU+IG1fYmFja2luZzsKKyAgICBSZWY8V2Vi
R1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVT
aGFkZXJNb2R1bGUubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM4M2FlNmY1YTJmNDFhNjk3OTRm
OTExYmMxY2M1ZWE0MTI3ODUwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMzEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICog
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNz
YWdlcyAtPiBSZW1vdGVTaGFkZXJNb2R1bGUgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIHZv
aWQgQ29tcGlsYXRpb25JbmZvKCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYkdQVTo6Q29tcGlsYXRp
b25NZXNzYWdlPiBtZXNzYWdlcykgU3luY2hyb25vdXMKKyAgICB2b2lkIFNldExhYmVsKFN0cmlu
ZyBsYWJlbCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDE0
ZDJmOTI2NmI1YmMwMGU0YmY1NmE2YTdmMTMxM2UyNDIyMDQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmNw
cApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVRleHR1cmUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlICJXZWJHUFVUZXh0dXJlVmlld0Rl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVRleHR1cmU6OlJlbW90ZVRleHR1cmUo
UEFMOjpXZWJHUFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0
SGVhcCkKKyAgICA6IG1fYmFja2luZyh0ZXh0dXJlKQorICAgICwgbV9vYmplY3RIZWFwKG9iamVj
dEhlYXApCit7Cit9CisKK1JlbW90ZVRleHR1cmU6On5SZW1vdGVUZXh0dXJlKCkKK3sKK30KKwor
dm9pZCBSZW1vdGVUZXh0dXJlOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViR1BV
OjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOworICAgIFVOVVNFRF9Q
QVJBTShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVUZXh0dXJlOjpkZXN0cm95KCkKK3sK
K30KKwordm9pZCBSZW1vdGVUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0obGFiZWwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQz
NWVkMjQ4OWY1NzYzYWFmMjhmMDZlNGVmODc0YTVlMDYyZDJlNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5o
CkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFz
cyBUZXh0dXJlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFdlYkdQVSB7
CitjbGFzcyBPYmplY3RIZWFwOworc3RydWN0IFRleHR1cmVWaWV3RGVzY3JpcHRvcjsKK30KKwor
Y2xhc3MgUmVtb3RlVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNl
aXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVUZXh0dXJlPiBjcmVhdGUoUEFM
OjpXZWJHUFU6OlRleHR1cmUmIHRleHR1cmUsIFdlYkdQVTo6T2JqZWN0SGVhcCYgb2JqZWN0SGVh
cCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVRleHR1cmUodGV4
dHVyZSwgb2JqZWN0SGVhcCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmUo
KTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT2JqZWN0SGVhcDsKKworICAgIFJlbW90
ZVRleHR1cmUoUEFMOjpXZWJHUFU6OlRleHR1cmUmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKwor
ICAgIFJlbW90ZVRleHR1cmUoY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJl
bW90ZVRleHR1cmUoUmVtb3RlVGV4dHVyZSYmKSA9IGRlbGV0ZTsKKyAgICBSZW1vdGVUZXh0dXJl
JiBvcGVyYXRvcj0oY29uc3QgUmVtb3RlVGV4dHVyZSYpID0gZGVsZXRlOworICAgIFJlbW90ZVRl
eHR1cmUmIG9wZXJhdG9yPShSZW1vdGVUZXh0dXJlJiYpID0gZGVsZXRlOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpv
cHRpb25hbDxXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4mLCBXZWJHUFVJZGVudGlmaWVy
KTsKKworICAgIHZvaWQgZGVzdHJveSgpOworCisgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcmJik7
CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+IG1fYmFja2luZzsKKyAgICBSZWY8V2Vi
R1BVOjpPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVy
ZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ZlOWY2MGRjYjk5NjRiZWM1OGVlMDEwMzdmOWVm
ZDYzZTlhNmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAK
Ky8qIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVU
ZXh0dXJlIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIENyZWF0ZVZpZXcoc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiBkZXNjcmlwdG9y
LCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2b2lkIERlc3Ryb3ko
KQorICAgIHZvaWQgU2V0TGFiZWwoU3RyaW5nIGxhYmVsKQorfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVy
ZVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVUZXh0dXJlVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhNGE3ODYzNmFmYmUxYWJiZGIyNjM4NWJj
Zjg4ODg1MTE1MmNmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcuY3BwCkBAIC0wLDAgKzEsNTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlVGV4dHVy
ZVZpZXcuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVU9i
amVjdEhlYXAuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVW
aWV3Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVUZXh0dXJlVmlldzo6UmVtb3Rl
VGV4dHVyZVZpZXcoUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3JiB0ZXh0dXJlVmlldywgV2ViR1BV
OjpPYmplY3RIZWFwJiBvYmplY3RIZWFwKQorICAgIDogbV9iYWNraW5nKHRleHR1cmVWaWV3KQor
ICAgICwgbV9vYmplY3RIZWFwKG9iamVjdEhlYXApCit7Cit9CisKK1JlbW90ZVRleHR1cmVWaWV3
Ojp+UmVtb3RlVGV4dHVyZVZpZXcoKQoreworfQorCit2b2lkIFJlbW90ZVRleHR1cmVWaWV3Ojpz
ZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGFiZWwpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlVGV4dHVyZVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlVGV4dHVyZVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDA1ZmNhZGJlNDc3MThkZDlkMDlh
ZDQzOTQ5NjFkNzM1MGRkZDJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlVmlldy5oCkBAIC0wLDAgKzEsNzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkdQVUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUw6OldlYkdQVSB7CitjbGFzcyBUZXh0dXJlVmlldzsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBXZWJHUFUgeworY2xhc3MgT2Jq
ZWN0SGVhcDsKK30KKworY2xhc3MgUmVtb3RlVGV4dHVyZVZpZXcgZmluYWwgOiBwdWJsaWMgSVBD
OjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3Rl
VGV4dHVyZVZpZXc+IGNyZWF0ZShQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIHRleHR1cmVWaWV3
LCBXZWJHUFU6Ok9iamVjdEhlYXAmIG9iamVjdEhlYXApCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0dXJlVmlldyh0ZXh0dXJlVmlldywgb2JqZWN0SGVhcCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZVRleHR1cmVWaWV3KCk7CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIE9iamVjdEhlYXA7CisKKyAgICBSZW1vdGVUZXh0dXJlVmlldyhQ
QUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmLCBXZWJHUFU6Ok9iamVjdEhlYXAmKTsKKworICAgIFJl
bW90ZVRleHR1cmVWaWV3KGNvbnN0IFJlbW90ZVRleHR1cmVWaWV3JikgPSBkZWxldGU7CisgICAg
UmVtb3RlVGV4dHVyZVZpZXcoUmVtb3RlVGV4dHVyZVZpZXcmJikgPSBkZWxldGU7CisgICAgUmVt
b3RlVGV4dHVyZVZpZXcmIG9wZXJhdG9yPShjb25zdCBSZW1vdGVUZXh0dXJlVmlldyYpID0gZGVs
ZXRlOworICAgIFJlbW90ZVRleHR1cmVWaWV3JiBvcGVyYXRvcj0oUmVtb3RlVGV4dHVyZVZpZXcm
JikgPSBkZWxldGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3Ry
ZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZv
aWQgc2V0TGFiZWwoU3RyaW5nJiYpOworCisgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmll
dz4gbV9iYWNraW5nOworICAgIFJlZjxXZWJHUFU6Ok9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVZpZXcubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDBmZGJiMDAzMDg3ZjNmY2M4ZmE0MDBjMDQyM2MxYjQ3MjQ5NjY5ZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4
dHVyZVZpZXcubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorLyogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZVRleHR1cmVWaWV3IE5vdFJlZkNv
dW50ZWQgU3RyZWFtIHsKKyAgICB2b2lkIFNldExhYmVsKFN0cmluZyBsYWJlbCkKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjBlOTRmNmMyMTBiMGIw
YzA5YWFmYTg5NjY0N2VkMWZmNzY5NTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcApAQCAtMCww
ICsxLDIzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHUFVPYmplY3RIZWFwLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQWRhcHRlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQmluZEdyb3VwLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5k
R3JvdXBMYXlvdXQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZl
ci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5o
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaD4K
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5o
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg+
CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmg+CisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldC5oPgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVJlbmRlckJ1bmRsZS5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVJlbmRlclBpcGVsaW5lLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFk
ZXJNb2R1bGUuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmUu
aD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3Lmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK09iamVjdEhlYXA6Ok9iamVjdEhlYXAoKQor
eworfQorCitPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCgpCit7Cit9CisKK2NvbnN0IFBBTDo6V2Vi
R1BVOjpBZGFwdGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3Rz
LmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8
fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+PihpdGVy
YXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpn
ZXQ8UmVmPFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRH
cm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9y
ID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpX
ZWJHUFU6OkJpbmRHcm91cD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cD4+KGl0
ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisKK2NvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBM
YXlvdXQqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0
cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkg
fHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlv
dXQ+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PihpdGVyYXRvci0+
dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBPYmplY3RIZWFw
Ojpjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBp
ZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZl
PFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QnVmZmVy
Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1h
bmRCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVj
dHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgp
IHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZl
cj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXI+PihpdGVyYXRvci0+dmFs
dWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIE9iamVj
dEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRp
Zmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3It
PnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJl
ZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwor
fQorCitjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBPYmplY3RIZWFwOjpj
b252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVy
KTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2Fs
dGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3It
PnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJl
ZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIo
KTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6
Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1
ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFM
OjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7Cit9CisK
K2NvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIE9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpE
ZXZpY2U+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBPYmplY3RIZWFwOjpjb252ZXJ0
R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8g
aXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6Oldl
YkdQVTo6R1BVPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6R1BVPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBPYmplY3RI
ZWFwOjpjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52
YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8
UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30K
KworY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UXVlcnlT
ZXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBp
dGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9
PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2Vi
R1BVOjpRdWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0Pj4oaXRlcmF0
b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAg
IGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRp
dmU8UmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlF1ZXVl
Pj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRl
ckJ1bmRsZUVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
UmVuZGVyQnVuZGxlRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZUVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQ
VTo6UmVuZGVyQnVuZGxlKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBt
X29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3Rz
LmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVy
QnVuZGxlPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPj4oaXRlcmF0b3It
PnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVy
KiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5m
aW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwg
IXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rl
cj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPj4oaXRlcmF0b3It
PnZhbHVlKS5wdHIoKTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBP
YmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJh
dG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6Omdl
dDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIo
KTsKK30KKworY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBsZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRT
YW1wbGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1
dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0
b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6
OldlYkdQVTo6U2FtcGxlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+PihpdGVy
YXRvci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxl
KiBPYmplY3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChp
ZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6
OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0
b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0
PFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsK
K30KKworY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIE9iamVjdEhlYXA6OmNvbnZlcnRUZXh0
dXJlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8g
aXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6Oldl
YkdQVTo6VGV4dHVyZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+PihpdGVyYXRv
ci0+dmFsdWUpLnB0cigpOworfQorCitjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIE9i
amVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRp
Zmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3Pj4oaXRlcmF0b3ItPnZh
bHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQ
QUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gSEFWRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVT2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVPYmplY3RIZWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ2ZDFlNTE3OTdiNjZhMGUzNmU2
OGI3YzUxMGJiNTAyYmQwMTk2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCkBAIC0wLDAgKzEsMTAw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVk
ZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHZhcmlhbnQ+CisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK2NsYXNzIE9iamVjdEhlYXAgZmluYWwgOiBwdWJsaWMgV2ViR1BVOjpDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE9iamVjdEhlYXA+
IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmplY3RIZWFw
KCkpOworICAgIH0KKworICAgIH5PYmplY3RIZWFwKCk7CisKK3ByaXZhdGU6CisgICAgT2JqZWN0
SGVhcCgpOworCisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkFkYXB0ZXIqIGNvbnZlcnRBZGFwdGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJH
UFU6OkJpbmRHcm91cCogY29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIGNvbnZl
cnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBjb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZm
ZXIqIGNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFu
ZEVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJH
UFU6OkNvbXB1dGVQaXBlbGluZSogY29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIGNv
bnZlcnREZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25z
dCBQQUw6OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0
UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBj
b25zdCBQQUw6OldlYkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogY29u
dmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3Qg
UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNv
ZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIpIGZpbmFsOworICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5j
b2RlciogY29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0
UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBj
b25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxl
KiBjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7
CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1
cmVWaWV3KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKKworICAgIHVzaW5nIE9iamVjdCA9IHN0ZDo6dmFyaWFudDwKKyAgICAgICAgUmVmPFBB
TDo6V2ViR1BVOjpBZGFwdGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+
LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4sCisgICAgICAgIFJl
ZjxQQUw6OldlYkdQVTo6QnVmZmVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5k
QnVmZmVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4sCisgICAg
ICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBB
TDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkRl
dmljZT4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6R1BVPiwKKyAgICAgICAgUmVmPFBBTDo6
V2ViR1BVOjpQaXBlbGluZUxheW91dD4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UXVlcnlT
ZXQ+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPiwKKyAgICAgICAgUmVmPFBBTDo6
V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpS
ZW5kZXJCdW5kbGU+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVy
PiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4sCisgICAgICAgIFJl
ZjxQQUw6OldlYkdQVTo6U2FtcGxlcj4sCisgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6U2hhZGVy
TW9kdWxlPiwKKyAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlPiwKKyAgICAgICAgUmVm
PFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4KKyAgICA+OworICAgIEhhc2hNYXA8V2ViR1BVSWRl
bnRpZmllciwgT2JqZWN0PiBtX29iamVjdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvci5jcHAKaW5kZXggN2U1ZWRmZWQ5ODAxNWE0YTQ0MzA5ODdkMmZhN2M3
OWYzMTYwOTkzZC4uYzRmMWNhOWMyZWQyMWVhMDY1ZmIxMTIxM2I4NDhlYjc2YWNmZDlhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xv
Y2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvci5oIgogCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIkdQVVByb2Nlc3MuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggYTEzNDRhZWEx
OTNjOThhZGU0MTJjMWViYmRkNWNmNzI5ZDlmN2NiNS4uMWVmZGUzYmY3NjVjMTYzYTc1YjQ1OGM0
YTU2NzliYTQ4YTZmOGE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21h
Yy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAg
LTMxLDYgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M7CisKIGNsYXNzIExvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3IgZmluYWwKICAgICA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
UHJveHkuaAppbmRleCA4ZjdkMzYzM2RkMDJkOTBhMWE1NjA0YTAwNjM0ZTMxZmE1MWI1N2ZhLi4y
NzBlMWViZTMxMjM1Zjc3ODZkZjA3YjkwMDBhMWM4N2E1N2QyN2I3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
UHJveHkuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGVzdGluYXRp
b25Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dl
bmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAppbmRleCBlYzEzMzI2ZmIwZWU4NWRkOTYwNjJlNmE0
OWUxMmUxNTU0NTE2ZjA1Li44NTJjMjU4YzdlNGMyYzMyOGQ1MDdiOWY1MmFjNDc4NTlmMzFiZGU4
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3Vy
Y2VzLnNoCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJj
ZXMuc2gKQEAgLTE0LDcgKzE0LDcgQEAgaWYgWyAteiAiJHtCVUlMRF9TQ1JJUFRTX0RJUn0iIF07
IHRoZW4KICAgICBmaQogZmkKIAotVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD0xMDAKK1VuaWZp
ZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTAzCiBVbmlmaWVkU291cmNlTW1GaWxlQ291bnQ9ODAKIAog
aWYgWyAkIyAtZXEgMCBdOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQppbmRleCA4YmQwZGIyOTdiZmI0MDc0ZjY4OTAwNDJmY2RhNDc4NDUwZGYwNTY2Li4zMTk2
YzVjZjU4NmQyNGUxMDZhZjJiYWIwMWVjYjk0MmRlMWI0ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM1OCw2ICszNTgsNyBAQCBkZWYgdHlwZXNfdGhh
dF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpUcmFuc2Fj
dGlvbklEJywKICAgICAgICAgJ1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXInLAorICAgICAg
ICAnV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6V2ViUGFnZVBy
b3h5SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6WFJEZXZpY2VJZGVudGlmaWVyJywKQEAgLTY3OCwy
MSArNjc5LDY5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgIGhlYWRlcl9pbmZv
c19hbmRfdHlwZXMgPSBjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKHR5cGUpCiAKICAgICBzcGVjaWFs
X2Nhc2VzID0gewotICAgICAgICAnTWFjaFNlbmRSaWdodCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0
Lmg+J10sCi0gICAgICAgICdKU0M6Ok1lc3NhZ2VMZXZlbCc6IFsnPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPiddLAotICAgICAgICAnSlNDOjpNZXNzYWdlU291cmNlJzogWyc8SmF2YVNj
cmlwdENvcmUvQ29uc29sZVR5cGVzLmg+J10sCiAgICAgICAgICdJUEM6OlNlbWFwaG9yZSc6IFsn
IklQQ1NlbWFwaG9yZS5oIiddLAogICAgICAgICAnSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcic6
IFsnIkluc3BlY3RvckV4dGVuc2lvblR5cGVzLmgiJ10sCiAgICAgICAgICdJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5cGUnOiBbJzxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwuaD4nXSwKICAgICAgICAgJ0luc3BlY3Rvcjo6SW5zcGVjdG9yVGFy
Z2V0VHlwZSc6IFsnPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclRhcmdldC5oPiddLAotICAgICAg
ICAnV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJzogWyc8V2ViQ29y
ZS9EaXNwbGF5TGlzdC5oPiddLAorICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKKyAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJj
ZSc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLAorICAgICAgICAnTWFjaFNl
bmRSaWdodCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10sCiAgICAgICAgICdNZWRpYVRpbWUn
OiBbJzx3dGYvTWVkaWFUaW1lLmg+J10sCiAgICAgICAgICdNb25vdG9uaWNUaW1lJzogWyc8d3Rm
L01vbm90b25pY1RpbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nl
c3Npb25JRC5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlJzogWyc8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpX
ZWJHUFU6OkJsZW5kRmFjdG9yJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZEZh
Y3Rvci5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uJzogWyc8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oPiddLAorICAgICAgICAnUEFM
OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVCdWZmZXJCaW5kaW5nVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkJ1ZmZlckR5
bmFtaWNPZmZzZXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMu
aD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzJzogWyc8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OkNvbG9yV3JpdGVGbGFncyc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JX
cml0ZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbic6IFsnPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg+J10sCisgICAgICAgICdQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlVHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJH
UFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4nXSwKKyAgICAgICAgJ1BBTDo6
V2ViR1BVOjpDdWxsTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUu
aD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpEZXB0aEJpYXMnOiBbJzxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpE
ZXZpY2VMb3N0UmVhc29uJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0
UmVhc29uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXInOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmg+J10sCisgICAgICAgICdQQUw6Oldl
YkdQVTo6RmVhdHVyZU5hbWUnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVO
YW1lLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6RmlsdGVyTW9kZSc6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVRmlsdGVyTW9kZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6
OkZsYWdzQ29uc3RhbnQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlw
ZXMuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpGcm9udEZhY2UnOiBbJzxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6Oklu
ZGV4MzInOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4nXSwK
KyAgICAgICAgJ1BBTDo6V2ViR1BVOjpJbmRleEZvcm1hdCc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW5kZXhGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5o
PiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OkxvYWRPcCc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTG9hZE9wLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdz
JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNYXBNb2RlLmg+J10sCisgICAgICAgICdQ
QUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BV
OjpQb3dlclByZWZlcmVuY2UnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBvd2VyUHJl
ZmVyZW5jZS5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNl
JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oPidd
LAorICAgICAgICAnUEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5JzogWyc8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVUb3BvbG9neS5oPiddLAorICAgICAgICAnUEFMOjpX
ZWJHUFU6OlF1ZXJ5VHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBl
Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9u
JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRp
b24uaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTYW1wbGVNYXNrJzogWyc8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQ
VTo6U2FtcGxlckJpbmRpbmdUeXBlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1w
bGVyQmluZGluZ1R5cGUuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZUZs
YWdzJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJTdGFnZS5oPiddLAorICAg
ICAgICAnUEFMOjpXZWJHUFU6OlNpZ25lZE9mZnNldDMyJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U2l6ZTMy
JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+J10sCisgICAg
ICAgICdQQUw6OldlYkdQVTo6U2l6ZTY0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJ
bnRlZ3JhbFR5cGVzLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlv
bic6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oPiddLAor
ICAgICAgICAnUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQWNjZXNzJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4
dHVyZUFjY2Vzcy5oPiddLAorICAgICAgICAnUEFMOjpXZWJHUFU6OlN0b3JlT3AnOiBbJzxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BV
OjpUZXh0dXJlQXNwZWN0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNw
ZWN0Lmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lvbic6IFsnPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oPiddLAorICAgICAgICAn
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVRleHR1cmVGb3JtYXQuaD4nXSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxl
VHlwZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUuaD4n
XSwKKyAgICAgICAgJ1BBTDo6V2ViR1BVOjpUZXh0dXJlVXNhZ2VGbGFncyc6IFsnPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVVzYWdlLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQ
VTo6VGV4dHVyZVZpZXdEaW1lbnNpb24nOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRl
eHR1cmVWaWV3RGltZW5zaW9uLmg+J10sCisgICAgICAgICdQQUw6OldlYkdQVTo6VmVydGV4Rm9y
bWF0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaD4nXSwKKyAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpWZXJ0ZXhTdGVwTW9kZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVVmVydGV4U3RlcE1vZGUuaD4nXSwKKyAgICAgICAgJ1BsYXRmb3JtWFI6OkRldmlj
ZTo6RnJhbWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+J10sCiAgICAgICAgICdTZWNv
bmRzJzogWyc8d3RmL1NlY29uZHMuaD4nXSwKKyAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0
L1dURlN0cmluZy5oPiddLAogICAgICAgICAnVVJMJzogWyc8d3RmL1VSTEhhc2guaD4nXSwKICAg
ICAgICAgJ1dhbGxUaW1lJzogWyc8d3RmL1dhbGxUaW1lLmg+J10sCi0gICAgICAgICdTdHJpbmcn
OiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKLSAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzog
Wyc8cGFsL1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXJjRGF0YSc6IFsnPFdl
YkNvcmUvSW5saW5lUGF0aERhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6QmV6aWVyQ3VydmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLApAQCAt
NzA0LDEyICs3NTMsMTQgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJDb3JlOjpDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCc6IFsnPFdlYkNvcmUvQXBwSGlnaGxp
Z2h0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8
V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRp
b25Db2xvclNwYWNlJzogWyc8V2ViQ29yZS9Db2xvclNwYWNlLmg+J10sCisgICAgICAgICdXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL0Rpc3Bs
YXlMaXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSc6
IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1l
bnRPcldvcmtlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnOiBbJzxXZWJDb3JlL0Ry
YWdEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2QnOiBbJzxX
ZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnT3BlcmF0aW9u
JzogWyc8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ1Nv
dXJjZUFjdGlvbic6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKKyAgICAgICAgJ1dlYkNv
cmU6OkR5bmFtaWNSYW5nZU1vZGUnOiBbJzxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlJzogWyc8V2ViQ29yZS9H
YW1lcGFkUHJvdmlkZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkV4Y2VwdGlvbkRl
dGFpbHMnOiBbJzxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+
J10sCkBAIC03MzYsOCArNzg3LDggQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAg
ICAgICdXZWJDb3JlOjpMaW5lSm9pbic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVM
b2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVycyc6IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCc6IFsnPFdl
YkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2Vy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFz
QWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVudExv
YWRlci5oPiddLApAQCAtNzk1LDkgKzg0Niw5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5JzogWyc8V2ViQ29yZS9GcmFtZUxv
YWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzog
Wyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5mby5oIiddLAotICAgICAgICAnV2Vi
S2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUlkZW50aWZpZXInOiBbJyJJZGVudGlmaWVyVHlw
ZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWxsb3dPdmVyd3JpdGUnOiBbJyJEb3dubG9hZElE
LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSc6IFsn
IkFwcFByaXZhY3lSZXBvcnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2VJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgiJ10sCiAgICAgICAgICdX
ZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLAog
ICAgICAgICAnV2ViS2l0OjpDYWxsRG93bmxvYWREaWRTdGFydCc6IFsnIkRvd25sb2FkTWFuYWdl
ci5oIiddLAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJzogWyciQ29u
dGVudFdvcmxkU2hhcmVkLmgiJ10sCkBAIC04MTgsMTUgKzg2OSw3OSBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uVG91Y2gnOiBbJyJHZXN0
dXJlVHlwZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6VGFwSWRlbnRpZmllcic6IFsnIklkZW50
aWZpZXJUeXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpUZXh0Q2hlY2tlclJlcXVlc3RJRCc6
IFsnIklkZW50aWZpZXJUeXBlcy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRH
cm91cERlc2NyaXB0b3InOiBbJyJXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwRW50cnknOiBbJyJXZWJHUFVCaW5kR3JvdXBF
bnRyeS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2Ny
aXB0b3InOiBbJyJXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnknOiBbJyJXZWJHUFVCaW5kR3Jv
dXBMYXlvdXRFbnRyeS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkJsZW5kQ29tcG9u
ZW50JzogWyciV2ViR1BVQmxlbmRDb21wb25lbnQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpCbGVuZFN0YXRlJzogWyciV2ViR1BVQmxlbmRTdGF0ZS5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmcnOiBbJyJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dCc6IFsnIldlYkdQ
VUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpCdWZm
ZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAn
V2ViS2l0OjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb24nOiBbJyJXZWJHUFVDYW52YXNDb25m
aWd1cmF0aW9uLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6Q29sb3InOiBbJyJXZWJH
UFVDb2xvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3RhdGUn
OiBbJyJXZWJHUFVDb2xvclRhcmdldFN0YXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQ
VTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3InOiBbJyJXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3Jp
cHRvcic6IFsnIldlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIiddLAorICAgICAgICAn
V2ViS2l0OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZSc6IFsnIldlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3Jp
cHRvcic6IFsnIldlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzJzogWyciV2ViR1BVQ29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJzogWyciV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQnOiBbJyJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6Q29udmVydFRvQmFja2luZ0NvbnRleHQnOiBbJyJXZWJHUFVDb252ZXJ0
VG9CYWNraW5nQ29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkRlcHRoU3Rl
bmNpbFN0YXRlJzogWyciV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJzogWyciV2ViR1BVRGV2aWNlRGVzY3JpcHRv
ci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OkVycm9yJzogWyciV2ViR1BVRXJyb3Iu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpFeHRlbnQzRCc6IFsnIldlYkdQVUV4dGVu
dDNELmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGlu
Z0xheW91dCc6IFsnIldlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJzogWyciV2Vi
R1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJH
UFU6OkZyYWdtZW50U3RhdGUnOiBbJyJXZWJHUFVGcmFnbWVudFN0YXRlLmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6SWRlbnRpZmllcic6IFsnIldlYkdQVUlkZW50aWZpZXIuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXInOiBbJyJXZWJHUFVJbWFn
ZUNvcHlCdWZmZXIuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRl
cm5hbEltYWdlJzogWyciV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIiddLAorICAgICAg
ICAnV2ViS2l0OjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmUnOiBbJyJXZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRh
Z2dlZCc6IFsnIldlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6V2ViR1BVOjpJbWFnZURhdGFMYXlvdXQnOiBbJyJXZWJHUFVJbWFnZURhdGFMYXlvdXQu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlJzogWyciV2Vi
R1BVTXVsdGlzYW1wbGVTdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dERlc2NyaXB0b3JCYXNlJzogWyciV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCInXSwKKyAg
ICAgICAgJ1dlYktpdDo6V2ViR1BVOjpPcmlnaW4yRCc6IFsnIldlYkdQVU9yaWdpbjJELmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6T3JpZ2luM0QnOiBbJyJXZWJHUFVPcmlnaW4zRC5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3InOiBbJyJXZWJH
UFVPdXRPZk1lbW9yeUVycm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UGlwZWxp
bmVEZXNjcmlwdG9yQmFzZSc6IFsnIldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCInXSwK
KyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3InOiBbJyJX
ZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2Vi
R1BVOjpQcmltaXRpdmVTdGF0ZSc6IFsnIldlYkdQVVByaW1pdGl2ZVN0YXRlLmgiJ10sCisgICAg
ICAgICdXZWJLaXQ6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2UnOiBbJyJXZWJHUFVQcm9ncmFt
bWFibGVTdGFnZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3Jp
cHRvcic6IFsnIldlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2ViS2l0
OjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5j
b2RlckRlc2NyaXB0b3InOiBbJyJXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5o
IiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQn
OiBbJyJXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgiJ10sCisgICAgICAgICdXZWJL
aXQ6OldlYkdQVTo6UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQnOiBbJyJXZWJHUFVS
ZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIiddLAorICAgICAgICAnV2ViS2l0OjpX
ZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yJzogWyciV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0JzogWyci
V2ViR1BVUmVuZGVyUGFzc0xheW91dC5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlJl
bmRlclBhc3NUaW1lc3RhbXBXcml0ZXMnOiBbJyJXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yJzogWyciV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJzogWyciV2ViR1BVUmVxdWVzdEFk
YXB0ZXJPcHRpb25zLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U2FtcGxlckJpbmRp
bmdMYXlvdXQnOiBbJyJXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oIiddLAorICAgICAgICAn
V2ViS2l0OjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yJzogWyciV2ViR1BVU2FtcGxlckRlc2Ny
aXB0b3IuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yJzogWyciV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIiddLAorICAgICAgICAnV2Vi
S2l0OjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGUnOiBbJyJXZWJHUFVTdGVuY2lsRmFjZVN0YXRl
LmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5
b3V0JzogWyciV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgiJ10sCisgICAgICAg
ICdXZWJLaXQ6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMnOiBbJyJXZWJHUFVTdXBwb3J0ZWRG
ZWF0dXJlcy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyc6
IFsnIldlYkdQVVN1cHBvcnRlZExpbWl0cy5oIiddLAorICAgICAgICAnV2ViS2l0OjpXZWJHUFU6
OlRleHR1cmVCaW5kaW5nTGF5b3V0JzogWyciV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIn
XSwKKyAgICAgICAgJ1dlYktpdDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvcic6IFsnIldlYkdQ
VVRleHR1cmVEZXNjcmlwdG9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VGV4dHVy
ZVZpZXdEZXNjcmlwdG9yJzogWyciV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgiJ10sCisg
ICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yJzogWyciV2ViR1BVVmFsaWRh
dGlvbkVycm9yLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4QXR0cmlidXRl
JzogWyciV2ViR1BVVmVydGV4QXR0cmlidXRlLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OldlYkdQ
VTo6VmVydGV4QnVmZmVyTGF5b3V0JzogWyciV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgiJ10s
CisgICAgICAgICdXZWJLaXQ6OldlYkdQVTo6VmVydGV4U3RhdGUnOiBbJyJXZWJHUFVWZXJ0ZXhT
dGF0ZS5oIiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUv
Q29va2llLmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQnOiBb
JzxXZWJDb3JlL0VsZW1lbnRDb250ZXh0Lmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6
VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzJzogWyc8V2ViQ29yZS9WaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3MuaD4nXSwKKyAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3Nh
Z2VIYW5kbGVyRGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIidd
LAogICAgICAgICAnc3RydWN0IFdlYktpdDo6V2ViVXNlclNjcmlwdERhdGEnOiBbJyJXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6
OldlYlVzZXJTdHlsZVNoZWV0RGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFU
eXBlcy5oIiddLAotICAgICAgICAnc3RydWN0IFdlYktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRs
ZXJEYXRhJzogWyciV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAg
ICAgICd3ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8nOiBbJzx3ZWJydGMvc2RrL1dlYktp
dC9XZWJLaXRFbmNvZGVyLmg+JywgJzxXZWJDb3JlL0xpYldlYlJUQ0VudW1UcmFpdHMuaD4nXSwK
LSAgICAgICAgJ1BsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0
Zm9ybVhSLmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlJzogWyc8V2Vi
Q29yZS9QbGF0Zm9ybVNjcmVlbi5oPiddLAogICAgIH0KIAogICAgIGhlYWRlcnMgPSBbXQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmgKaW5kZXggMGUwZWJjNDQ3NjBkZTk3Mjc5OTBiYzk3MWJhMTMzODk0NjYyOGFlMy4u
YmNjZTViOTM4NmQ4OWY3YzBhMTNjOGNhNTNkZDkzYmZlMjVkM2FkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5o
CkBAIC0zNSw2ICszNSwzMyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJp
bmRHcm91cERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdl
YkdQVUlkZW50aWZpZXIgYmluZEdyb3VwTGF5b3V0OwogICAgIFZlY3RvcjxCaW5kR3JvdXBFbnRy
eT4gZW50cmllczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVy
IDw8IGJpbmRHcm91cExheW91dDsKKyAgICAgICAgZW5jb2RlciA8PCBlbnRyaWVzOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRH
cm91cERlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7
CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICgh
b2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRlbnRpZmllcj4gYmluZEdyb3VwTGF5b3V0
OworICAgICAgICBkZWNvZGVyID4+IGJpbmRHcm91cExheW91dDsKKyAgICAgICAgaWYgKCFiaW5k
R3JvdXBMYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEJpbmRHcm91cEVudHJ5Pj4gZW50cmllczsKKyAgICAgICAg
ZGVjb2RlciA+PiBlbnRyaWVzOworICAgICAgICBpZiAoIWVudHJpZXMpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0
RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpiaW5kR3JvdXBMYXlvdXQpLCBXVEZNb3ZlKCplbnRy
aWVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRy
eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgK
aW5kZXggZjM4ZGQ1MDY3NzY0OTIyNmM0ZDdhMDMwYzlkZTljY2JkNmRkNjYzMy4uZDJmNDlkNTA4
NDM3ZGJjOWRmYmFkN2JlZDg2MTEzMWFjN2Q0ZThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKQEAgLTQ0LDYgKzQ0LDUzIEBA
IHN0cnVjdCBCaW5kR3JvdXBFbnRyeSB7CiAgICAgQnVmZmVyQmluZGluZyBidWZmZXJCaW5kaW5n
OwogICAgIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBCaW5kaW5nUmVzb3VyY2VU
eXBlIHR5cGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBiaW5kaW5nOwor
ICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlckJpbmRpbmc7CisgICAgICAgIGVuY29kZXIgPDwgaWRl
bnRpZmllcjsKKyAgICAgICAgZW5jb2RlciA8PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cEVudHJ5PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkluZGV4MzI+IGJpbmRpbmc7CisgICAgICAgIGRlY29kZXIgPj4gYmluZGluZzsKKyAg
ICAgICAgaWYgKCFiaW5kaW5nKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckJpbmRpbmc+IGJ1ZmZlckJpbmRpbmc7CisgICAg
ICAgIGRlY29kZXIgPj4gYnVmZmVyQmluZGluZzsKKyAgICAgICAgaWYgKCFidWZmZXJCaW5kaW5n
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFdlYkdQVUlkZW50aWZpZXI+IGlkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaWRl
bnRpZmllcjsKKyAgICAgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPEJpbmRpbmdSZXNvdXJjZVR5cGU+
IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1v
dmUoKmJpbmRpbmcpLCBXVEZNb3ZlKCpidWZmZXJCaW5kaW5nKSwgV1RGTW92ZSgqaWRlbnRpZmll
ciksIFdURk1vdmUoKnR5cGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3Vy
Y2VUeXBlLAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6U2Ft
cGxlciwKKyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6OlRleHR1
cmVWaWV3LAorICAgICAgICBXZWJLaXQ6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlVHlwZTo6QnVm
ZmVyQmluZGluZywKKyAgICAgICAgV2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU6
OkV4dGVybmFsVGV4dHVyZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5oCmluZGV4IDY4YmFiZWRiYjY1MzZkNGJkNDBiN2Q1M2I0YWQ5NDY1
YjM3ZjY5ZWIuLmI0ZjBjYjRjNjYyZWYzYWYyZGE1NTgyMDlmMmM3MDhhNTA5YzQ1NWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cExheW91dERlc2NyaXB0b3IuaApAQCAtMzMsNiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIAogc3RydWN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3IgOiBwdWJsaWMg
T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxCaW5kR3JvdXBMYXlvdXRFbnRyeT4g
ZW50cmllczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0
PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8
IGVudHJpZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNl
PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlw
dG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Qmlu
ZEdyb3VwTGF5b3V0RW50cnk+PiBlbnRyaWVzOworICAgICAgICBkZWNvZGVyID4+IGVudHJpZXM7
CisgICAgICAgIGlmICghZW50cmllcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdU
Rk1vdmUoKmVudHJpZXMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJp
bmRHcm91cExheW91dEVudHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwTGF5b3V0RW50cnkuaAppbmRleCA0MDJhM2YwOTE5MWU4NThlNTRmYjNlY2E3NDZi
OWQzODlkM2JmOWYwLi5iODMwYTU5MTQ4OTZlNWRmNzI1MmZmNGQwYzYzMjA1YzU5N2RkYzFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5
b3V0RW50cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdy
b3VwTGF5b3V0RW50cnkuaApAQCAtNDUsNiArNDUsNTcgQEAgc3RydWN0IEJpbmRHcm91cExheW91
dEVudHJ5IHsKICAgICBzdGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiB0ZXh0dXJl
OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0PiBzdG9yYWdl
VGV4dHVyZTsKICAgICBzdGQ6Om9wdGlvbmFsPEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+
IGV4dGVybmFsVGV4dHVyZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGJp
bmRpbmc7CisgICAgICAgIGVuY29kZXIgPDwgdmlzaWJpbGl0eTsKKyAgICAgICAgZW5jb2RlciA8
PCBidWZmZXI7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlcjsKKyAgICAgICAgZW5jb2RlciA8
PCB0ZXh0dXJlOworICAgICAgICBlbmNvZGVyIDw8IHN0b3JhZ2VUZXh0dXJlOworICAgICAgICBl
bmNvZGVyIDw8IGV4dGVybmFsVGV4dHVyZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpJbmRleDMyPiBiaW5kaW5nOworICAgICAgICBkZWNvZGVyID4+IGJpbmRpbmc7CisgICAg
ICAgIGlmICghYmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFncz4gdmlzaWJp
bGl0eTsKKyAgICAgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgICAgICBpZiAoIXZpc2li
aWxpdHkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxCdWZmZXJCaW5kaW5nTGF5b3V0Pj4gYnVmZmVyOworICAg
ICAgICBkZWNvZGVyID4+IGJ1ZmZlcjsKKyAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxTYW1wbGVyQmluZGluZ0xheW91dD4+IHNhbXBsZXI7CisgICAgICAgIGRlY29kZXIgPj4g
c2FtcGxlcjsKKyAgICAgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8VGV4dHVyZUJp
bmRpbmdMYXlvdXQ+PiB0ZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAg
ICAgIGlmICghdGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xh
eW91dD4+IHN0b3JhZ2VUZXh0dXJlOworICAgICAgICBkZWNvZGVyID4+IHN0b3JhZ2VUZXh0dXJl
OworICAgICAgICBpZiAoIXN0b3JhZ2VUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8RXh0ZXJuYWxU
ZXh0dXJlQmluZGluZ0xheW91dD4+IGV4dGVybmFsVGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+
PiBleHRlcm5hbFRleHR1cmU7CisgICAgICAgIGlmICghZXh0ZXJuYWxUZXh0dXJlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
KmJpbmRpbmcpLCBXVEZNb3ZlKCp2aXNpYmlsaXR5KSwgV1RGTW92ZSgqYnVmZmVyKSwgV1RGTW92
ZSgqc2FtcGxlciksIFdURk1vdmUoKnRleHR1cmUpLCBXVEZNb3ZlKCpzdG9yYWdlVGV4dHVyZSks
IFdURk1vdmUoKmV4dGVybmFsVGV4dHVyZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCbGVuZENvbXBvbmVudC5oCmluZGV4IDk0YWM1YTI0MjBiMjM4MzA2ZmQ1NTk2ZjU0ZjVj
NjhiMmI3NmJiMjIuLmVlYmY5M2U3NGIyYjcxYzVkNmVkNDZhMDc2ODEwNzk4YWZjZDA4ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVu
dC5oCkBAIC0zNCw2ICszNCwzMyBAQCBzdHJ1Y3QgQmxlbmRDb21wb25lbnQgewogICAgIFBBTDo6
V2ViR1BVOjpCbGVuZE9wZXJhdGlvbiBvcGVyYXRpb247CiAgICAgUEFMOjpXZWJHUFU6OkJsZW5k
RmFjdG9yIHNyY0ZhY3RvcjsKICAgICBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3IgZHN0RmFjdG9y
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3BlcmF0aW9uOworICAgICAg
ICBlbmNvZGVyIDw8IHNyY0ZhY3RvcjsKKyAgICAgICAgZW5jb2RlciA8PCBkc3RGYWN0b3I7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
QmxlbmRDb21wb25lbnQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb24+IG9wZXJhdGlvbjsKKyAg
ICAgICAgZGVjb2RlciA+PiBvcGVyYXRpb247CisgICAgICAgIGlmICghb3BlcmF0aW9uKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpCbGVuZEZhY3Rvcj4gc3JjRmFjdG9yOworICAgICAgICBkZWNvZGVyID4+IHNy
Y0ZhY3RvcjsKKyAgICAgICAgaWYgKCFzcmNGYWN0b3IpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kRmFj
dG9yPiBkc3RGYWN0b3I7CisgICAgICAgIGRlY29kZXIgPj4gZHN0RmFjdG9yOworICAgICAgICBp
ZiAoIWRzdEZhY3RvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvcGVyYXRpb24pLCBXVEZNb3ZlKCpzcmNGYWN0b3IpLCBX
VEZNb3ZlKCpkc3RGYWN0b3IpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJsZW5kU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0
YXRlLmgKaW5kZXggYTQxZjUxN2JjMTJjOTE3YTkyYTJlZTE5YTY0MzgyM2I2NGFhMmZiZi4uOWU4
NGJhY2U5ZWE5OWIzMDVhMzY5MDYyZWViYTY1OWQ2MjllOGZhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCkBAIC0zMiw2ICszMiwyNyBAQCBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IEJsZW5kU3RhdGUgewogICAgIEJsZW5k
Q29tcG9uZW50IGNvbG9yOwogICAgIEJsZW5kQ29tcG9uZW50IGFscGhhOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgY29sb3I7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGE7
CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QmxlbmRTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBz
dGQ6Om9wdGlvbmFsPEJsZW5kQ29tcG9uZW50PiBjb2xvcjsKKyAgICAgICAgZGVjb2RlciA+PiBj
b2xvcjsKKyAgICAgICAgaWYgKCFjb2xvcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxCbGVuZENvbXBvbmVudD4gYWxwaGE7CisgICAg
ICAgIGRlY29kZXIgPj4gYWxwaGE7CisgICAgICAgIGlmICghYWxwaGEpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29sb3Ip
LCBXVEZNb3ZlKCphbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QnVmZmVyQmluZGluZy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZl
ckJpbmRpbmcuaAppbmRleCBkNDU5ODFmOWJkMTg1MTRiNzQyOWJlYjEyZTM0MDM5YTU5NWFmODdh
Li4zMTZiNDE2OGExZDljNTEyMjg0ZGEzZWY2YTYyMGEyNzM3ODU4YjBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKQEAgLTM2LDYg
KzM2LDMzIEBAIHN0cnVjdCBCdWZmZXJCaW5kaW5nIHsKICAgICBXZWJHUFVJZGVudGlmaWVyIGJ1
ZmZlcjsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldDsKICAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCBidWZmZXI7CisgICAgICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgICAgICBlbmNv
ZGVyIDw8IHNpemU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QnVmZmVyQmluZGluZz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdQVUlkZW50aWZpZXI+IGJ1ZmZlcjsKKyAg
ICAgICAgZGVjb2RlciA+PiBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaXplNjQ+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAg
IGlmICghb2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4+IHNpemU7
CisgICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmJ1
ZmZlciksIFdURk1vdmUoKm9mZnNldCksIFdURk1vdmUoKnNpemUpIH0gfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgKaW5kZXggZjFmMDE2
NWM3MWRjYmFiYzEzZjRlMjkyNTI1NmI2YzE2NGMxYmZlOC4uZjlkMTEwZTRiMGJiZTY1YjNlZjVh
MjZkZGYxY2UzMmQ0NGJkZjJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCkBAIC0zNCw2ICszNCwzMyBAQCBz
dHJ1Y3QgQnVmZmVyQmluZGluZ0xheW91dCB7CiAgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRp
bmdUeXBlIHR5cGU7CiAgICAgYm9vbCBoYXNEeW5hbWljT2Zmc2V0OwogICAgIFBBTDo6V2ViR1BV
OjpTaXplNjQgbWluQmluZGluZ1NpemU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8IGhhc0R5bmFtaWNPZmZzZXQ7CisgICAgICAg
IGVuY29kZXIgPDwgbWluQmluZGluZ1NpemU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QnVmZmVyQmluZGluZ0xheW91dD4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpCdWZmZXJCaW5kaW5nVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOwor
ICAgICAgICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaGFzRHluYW1pY09mZnNldDsKKyAgICAgICAgZGVj
b2RlciA+PiBoYXNEeW5hbWljT2Zmc2V0OworICAgICAgICBpZiAoIWhhc0R5bmFtaWNPZmZzZXQp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gbWluQmluZGluZ1NpemU7CisgICAgICAgIGRlY29kZXIg
Pj4gbWluQmluZGluZ1NpemU7CisgICAgICAgIGlmICghbWluQmluZGluZ1NpemUpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
dHlwZSksIFdURk1vdmUoKmhhc0R5bmFtaWNPZmZzZXQpLCBXVEZNb3ZlKCptaW5CaW5kaW5nU2l6
ZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3Iu
aAppbmRleCA2YzdhMTYwZWFkOTQxY2MwM2I3NDRkOWEyNzQxYzhiYTI4MTdlOTVkLi45YzUzNDRh
MjRiZjBkODlkNjFmNDhkMTFmNmY1Nzk0NWE4ZjAxYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKQEAgLTM1LDYgKzM1
LDM5IEBAIHN0cnVjdCBCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JC
YXNlIHsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IHNpemU7CiAgICAgUEFMOjpXZWJHUFU6OkJ1
ZmZlclVzYWdlRmxhZ3MgdXNhZ2U7CiAgICAgYm9vbCBtYXBwZWRBdENyZWF0aW9uOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVz
Y3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgc2l6ZTsKKyAgICAgICAg
ZW5jb2RlciA8PCB1c2FnZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXBwZWRBdENyZWF0aW9uOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEJ1ZmZlckRlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJh
c2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlm
ICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkJ1ZmZlclVzYWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAg
ICAgICBpZiAoIXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1hcHBlZEF0Q3JlYXRpb247CisgICAgICAgIGRlY29k
ZXIgPj4gbWFwcGVkQXRDcmVhdGlvbjsKKyAgICAgICAgaWYgKCFtYXBwZWRBdENyZWF0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqc2l6ZSksIFdURk1vdmUoKnVz
YWdlKSwgV1RGTW92ZSgqbWFwcGVkQXRDcmVhdGlvbikgfSB9OworICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaAppbmRleCBiODc2N2YwYTFiMDU4
N2VmZTgxYzE5YTljNjE5MTMxOTkzZjA3OTlmLi44NGI0YjA5NzVhOGQ3MTk0OTQ4ODY1YWFlNzE3
ZWVjZTE4NjBiNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKQEAgLTQ3LDYgKzQ3LDUxIEBAIHN0cnVjdCBD
YW52YXNDb25maWd1cmF0aW9uIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3Bh
Y2UgY29sb3JTcGFjZTsKICAgICBQQUw6OldlYkdQVTo6Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1v
ZGUgY29tcG9zaXRpbmdBbHBoYU1vZGU7CiAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6
ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGRldmljZTsKKyAgICAgICAg
ZW5jb2RlciA8PCBmb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgdXNhZ2U7CisgICAgICAgIGVu
Y29kZXIgPDwgY29sb3JTcGFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBjb21wb3NpdGluZ0FscGhh
TW9kZTsKKyAgICAgICAgZW5jb2RlciA8PCBzaXplOworICAgIH0KKworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhbnZhc0NvbmZpZ3VyYXRpb24+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJH
UFVJZGVudGlmaWVyPiBkZXZpY2U7CisgICAgICAgIGRlY29kZXIgPj4gZGV2aWNlOworICAgICAg
ICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gZm9ybWF0OworICAg
ICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVVz
YWdlRmxhZ3M+IHVzYWdlOworICAgICAgICBkZWNvZGVyID4+IHVzYWdlOworICAgICAgICBpZiAo
IXVzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsK
KyAgICAgICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOworICAgICAgICBpZiAoIWNvbG9yU3BhY2Up
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlPiBjb21wb3NpdGluZ0Fs
cGhhTW9kZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21wb3NpdGluZ0FscGhhTW9kZTsKKyAgICAg
ICAgaWYgKCFjb21wb3NpdGluZ0FscGhhTW9kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEV4dGVudDNEPj4g
c2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqZGV2aWNlKSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2UpLCBXVEZNb3ZlKCpj
b2xvclNwYWNlKSwgV1RGTW92ZSgqY29tcG9zaXRpbmdBbHBoYU1vZGUpLCBXVEZNb3ZlKCpzaXpl
KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKaW5kZXggMDc1M2NjNmUwNmRkOThj
YzdjMjJiNjE2ZGVkY2JmZmY3N2U0YmJkOS4uNGUwZjQzOWRmZjViYThhMjQ2MTViMGIzNzhkMTE0
MWE4NThhNzk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgK
QEAgLTM2LDYgKzM2LDM5IEBAIHN0cnVjdCBDb2xvckRpY3QgewogICAgIGRvdWJsZSBnOwogICAg
IGRvdWJsZSBiOwogICAgIGRvdWJsZSBhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29k
ZXIgPDwgcjsKKyAgICAgICAgZW5jb2RlciA8PCBnOworICAgICAgICBlbmNvZGVyIDw8IGI7Cisg
ICAgICAgIGVuY29kZXIgPDwgYTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb2xvckRpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHI7CisgICAgICAgIGRlY29k
ZXIgPj4gcjsKKyAgICAgICAgaWYgKCFyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZzsKKyAgICAgICAgZGVjb2RlciA+
PiBnOworICAgICAgICBpZiAoIWcpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBiOworICAgICAgICBkZWNvZGVyID4+IGI7
CisgICAgICAgIGlmICghYikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGE7CisgICAgICAgIGRlY29kZXIgPj4gYTsKKyAg
ICAgICAgaWYgKCFhKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKnIpLCBXVEZNb3ZlKCpnKSwgV1RGTW92ZSgqYiksIFdURk1v
dmUoKmEpIH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0
b3I8ZG91YmxlPiwgQ29sb3JEaWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oCmluZGV4IGZiZWU3ODE4NGFmM2YwOWY1YTlm
OGI3Y2ZiMGE3ZjdmNGM5YTNmYjcuLjJlMzAzYzQ3ZTA1MjFhMTI5NDQxNGIwNjljZmUyMzc5MmQz
ZTZmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xv
clRhcmdldFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bG9yVGFyZ2V0U3RhdGUuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IENvbG9yVGFyZ2V0U3Rh
dGUgewogCiAgICAgc3RkOjpvcHRpb25hbDxCbGVuZFN0YXRlPiBibGVuZDsKICAgICBQQUw6Oldl
YkdQVTo6Q29sb3JXcml0ZUZsYWdzIHdyaXRlTWFzazsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBibGVuZDsKKyAgICAgICAg
ZW5jb2RlciA8PCB3cml0ZU1hc2s7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29sb3JUYXJnZXRTdGF0ZT4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0
dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0OworICAgICAgICBp
ZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEJsZW5kU3RhdGU+PiBibGVuZDsKKyAgICAgICAg
ZGVjb2RlciA+PiBibGVuZDsKKyAgICAgICAgaWYgKCFibGVuZCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29s
b3JXcml0ZUZsYWdzPiB3cml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gd3JpdGVNYXNrOwor
ICAgICAgICBpZiAoIXdyaXRlTWFzaykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpmb3JtYXQpLCBXVEZNb3ZlKCpibGVuZCks
IFdURk1vdmUoKndyaXRlTWFzaykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4IDZkYzYzYzNlZjRiNTY1NTFh
NmQyNjNhNmZiYTY4N2JkZjYxOTQ5OTYuLmFmYjYwODNjMDU0NTFmMjUzYzdkMmI1Y2I2YTRiZWI1
ZWVmMmMzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zMCw2ICszMCwyMCBAQAogbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9y
IDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlz
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxDb21tYW5kQnVmZmVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3RE
ZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlw
dG9yQmFzZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVu
Y29kZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
bWFuZEVuY29kZXJEZXNjcmlwdG9yLmgKaW5kZXggZjA3YTVmMDA3MzE5YWM5N2QxMWMwNTU4MTQ0
NmMxMGU4M2UzMDllNi4uMzNiZWIwOWU2ZDVlMDQ3MTZmZDNiOGRjNmFiNTBjOGU3ODYyYTVmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaApAQCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJs
aWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAg
IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlw
dG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAg
ICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFz
ZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNz
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNz
YWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDhlYTRkYjU0YWMyMjhhYjg3YzNiOThmNDVkYjM4NzFlZmEwZTky
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21waWxhdGlvbk1lc3NhZ2UuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdHJ1Y3QgQ29tcGls
YXRpb25NZXNzYWdlIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBQQUw6OldlYkdQVTo6Q29t
cGlsYXRpb25NZXNzYWdlVHlwZSB0eXBlOworICAgIHVpbnQ2NF90IGxpbmVOdW07CisgICAgdWlu
dDY0X3QgbGluZVBvczsKKyAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDY0X3QgbGVuZ3Ro
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVzc2FnZTsKKyAgICAgICAg
ZW5jb2RlciA8PCB0eXBlOworICAgICAgICBlbmNvZGVyIDw8IGxpbmVOdW07CisgICAgICAgIGVu
Y29kZXIgPDwgbGluZVBvczsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVu
Y29kZXIgPDwgbGVuZ3RoOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXBpbGF0aW9uTWVzc2FnZT4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWVzc2FnZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgICAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IHR5cGU7CisgICAgICAgIGRlY29kZXIgPj4g
dHlwZTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBsaW5lTnVtOworICAgICAgICBk
ZWNvZGVyID4+IGxpbmVOdW07CisgICAgICAgIGlmICghbGluZU51bSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbGlu
ZVBvczsKKyAgICAgICAgZGVjb2RlciA+PiBsaW5lUG9zOworICAgICAgICBpZiAoIWxpbmVQb3Mp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IG9mZnNldDsKKyAgICAgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgICAg
IGlmICghb2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBsZW5ndGg7CisgICAgICAgIGRlY29kZXIgPj4gbGVu
Z3RoOworICAgICAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCptZXNzYWdlKSwgV1RGTW92ZSgqdHlw
ZSksIFdURk1vdmUoKmxpbmVOdW0pLCBXVEZNb3ZlKCpsaW5lUG9zKSwgV1RGTW92ZSgqb2Zmc2V0
KSwgV1RGTW92ZSgqbGVuZ3RoKSB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaAppbmRleCA5NTdlNmU0NjMzYjc4NjVjYTA3MTYw
NDdlYjdjOTExOTg2ZTZiYTI4Li43YmIzZTMxOGViZWMzM2VjOGY3OGE4M2YxNmQ3NTVjM2QyMTQx
Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0
ZVBhc3NEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oCkBAIC0zMiw2ICszMiwyNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9i
amVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyB0aW1l
c3RhbXBXcml0ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0aW1lc3RhbXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IG9iamVj
dERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPENv
bXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzPiB0aW1lc3RhbXBXcml0ZXM7CisgICAgICAgIGRlY29k
ZXIgPj4gdGltZXN0YW1wV3JpdGVzOworICAgICAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlcy5oCmluZGV4IDFhMDZmOGYwMjUzY2YyNmZmZmYwY2RiMjQ1ZGMyMDZkNDg2
MzM4OTUuLjRmMjJkOWFhYjFkYjYyOGJmMzEzNjIyYzg0OThjNmE4NGFjMjdkM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cFdyaXRlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRl
UGFzc1RpbWVzdGFtcFdyaXRlcy5oCkBAIC0zNyw2ICszNywzMyBAQCBzdHJ1Y3QgQ29tcHV0ZVBh
c3NUaW1lc3RhbXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQ
YXNzVGltZXN0YW1wTG9jYXRpb24gbG9jYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCBxdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8PCBxdWVyeUluZGV4OworICAg
ICAgICBlbmNvZGVyIDw8IGxvY2F0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJH
UFVJZGVudGlmaWVyPiBxdWVyeVNldDsKKyAgICAgICAgZGVjb2RlciA+PiBxdWVyeVNldDsKKyAg
ICAgICAgaWYgKCFxdWVyeVNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBxdWVyeUluZGV4Owor
ICAgICAgICBkZWNvZGVyID4+IHF1ZXJ5SW5kZXg7CisgICAgICAgIGlmICghcXVlcnlJbmRleCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247Cisg
ICAgICAgIGRlY29kZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqcXVlcnlTZXQpLCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0g
fTsKKyAgICB9CiB9OwogCiB1c2luZyBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3Rv
cjxDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCmlu
ZGV4IGM5MzMyNmE5ZTkzNzVkYjNiNTA4MDk5NjE2Y2MxMzY5MDZjMjkzM2IuLmNkZDY1ZDA5NWY2
OGU1ZWNiZWI5ODdkM2FiMzNiMjhhMmNiNjQ2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Iu
aApAQCAtMzIsNiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0
IENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZSB7CiAgICAgUHJvZ3JhbW1hYmxlU3RhZ2UgY29tcHV0ZTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2Um
PigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgY29tcHV0ZTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gcGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgZGVjb2RlciA+PiBwaXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAo
IXBpcGVsaW5lRGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IGNvbXB1dGU7Cisg
ICAgICAgIGRlY29kZXIgPj4gY29tcHV0ZTsKKyAgICAgICAgaWYgKCFjb21wdXRlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
KnBpcGVsaW5lRGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb21wdXRlKSB9IH07CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oCmluZGV4IDAyMTg4MjdiMzAxYWM2ZDM4YzZjNzI4ZDc4Y2UxOWE5YzI5OTVhYjQuLjU5NTQ1
ZDYwNDY5YWJlZTI1MzAyZjdjOTM0N2I4NDAyNTI3Y2NiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBQQUw6
OldlYkdQVTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNv
bnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwogICAg
IHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFu
ZEVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBj
b25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOCBjb252ZXJ0Q29tcHV0ZVBhc3NF
bmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgY29u
c3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5j
b2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0
IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBQQUw6Oldl
YkdQVTo6RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
PSAwOwogICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKaW5kZXggMmUyMTQ3NzNhNjVk
YjRmNmM4YWQyODIxYWM2MzZhMDBhNWJmZjY4MS4uYTU5N2RmMDk2MTM2ZGIzNDI4YzJjNjdkNTJl
Yzk2MWZmYmNmNjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKQEAgLTQ4LDYgKzQ4LDc1IEBAIHN0cnVjdCBEZXB0
aFN0ZW5jaWxTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OkRlcHRoQmlhcyBkZXB0aEJpYXM7CiAg
ICAgZmxvYXQgZGVwdGhCaWFzU2xvcGVTY2FsZTsKICAgICBmbG9hdCBkZXB0aEJpYXNDbGFtcDsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5j
b2RlciA8PCBkZXB0aFdyaXRlRW5hYmxlZDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aENvbXBh
cmU7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbEZyb250OworICAgICAgICBlbmNvZGVyIDw8
IHN0ZW5jaWxCYWNrOworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkTWFzazsKKyAgICAg
ICAgZW5jb2RlciA8PCBzdGVuY2lsV3JpdGVNYXNrOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRo
QmlhczsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0aEJpYXNTbG9wZVNjYWxlOworICAgICAgICBl
bmNvZGVyIDw8IGRlcHRoQmlhc0NsYW1wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKKyAgICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAg
ICAgIGlmICghZm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGRlcHRoV3JpdGVFbmFibGVkOworICAgICAgICBkZWNv
ZGVyID4+IGRlcHRoV3JpdGVFbmFibGVkOworICAgICAgICBpZiAoIWRlcHRoV3JpdGVFbmFibGVk
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpDb21wYXJlRnVuY3Rpb24+IGRlcHRoQ29tcGFyZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBkZXB0aENvbXBhcmU7CisgICAgICAgIGlmICghZGVwdGhDb21wYXJlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0
ZW5jaWxGYWNlU3RhdGU+IHN0ZW5jaWxGcm9udDsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2ls
RnJvbnQ7CisgICAgICAgIGlmICghc3RlbmNpbEZyb250KQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0ZW5jaWxGYWNlU3RhdGU+IHN0
ZW5jaWxCYWNrOworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxCYWNrOworICAgICAgICBpZiAo
IXN0ZW5jaWxCYWNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZT4+
IHN0ZW5jaWxSZWFkTWFzazsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE1hc2s7Cisg
ICAgICAgIGlmICghc3RlbmNpbFJlYWRNYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlN0ZW5jaWxWYWx1ZT4+IHN0ZW5jaWxXcml0ZU1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gc3Rl
bmNpbFdyaXRlTWFzazsKKyAgICAgICAgaWYgKCFzdGVuY2lsV3JpdGVNYXNrKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpEZXB0aEJpYXM+IGRlcHRoQmlhczsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aEJpYXM7
CisgICAgICAgIGlmICghZGVwdGhCaWFzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkZXB0aEJpYXNTbG9wZVNjYWxlOwor
ICAgICAgICBkZWNvZGVyID4+IGRlcHRoQmlhc1Nsb3BlU2NhbGU7CisgICAgICAgIGlmICghZGVw
dGhCaWFzU2xvcGVTY2FsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZGVwdGhCaWFzQ2xhbXA7CisgICAgICAgIGRlY29k
ZXIgPj4gZGVwdGhCaWFzQ2xhbXA7CisgICAgICAgIGlmICghZGVwdGhCaWFzQ2xhbXApCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqZm9ybWF0KSwgV1RGTW92ZSgqZGVwdGhXcml0ZUVuYWJsZWQpLCBXVEZNb3ZlKCpkZXB0aENv
bXBhcmUpLCBXVEZNb3ZlKCpzdGVuY2lsRnJvbnQpLCBXVEZNb3ZlKCpzdGVuY2lsQmFjayksIFdU
Rk1vdmUoKnN0ZW5jaWxSZWFkTWFzayksIFdURk1vdmUoKnN0ZW5jaWxXcml0ZU1hc2spLCBXVEZN
b3ZlKCpkZXB0aEJpYXMpLCBXVEZNb3ZlKCpkZXB0aEJpYXNTbG9wZVNjYWxlKSwgV1RGTW92ZSgq
ZGVwdGhCaWFzQ2xhbXApIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURl
dmljZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZp
Y2VEZXNjcmlwdG9yLmgKaW5kZXggODZhNGQ2OGZlZjcxNzNlNTVkNTYxM2JkNGE0Yjk1NmUwMzBm
ZTIyYi4uNmEyNTIzNmRjODljNjY5ODkwNDc3ZWRkZDFkMjMzYTRiMmI0MjRjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5o
CkBAIC0zNyw2ICszNywyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogc3RydWN0IERl
dmljZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3Rv
cjxQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU+IHJlcXVpcmVkRmVhdHVyZXM7CiAgICAgLy8gRklY
TUU6IEFkZCBzdXBwb3J0IGZvciByZXF1aXJlZExpbWl0cy4KKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4o
KnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IHJlcXVpcmVkRmVhdHVyZXM7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RGV2aWNlRGVz
Y3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3RE
ZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPj4gcmVxdWly
ZWRGZWF0dXJlczsKKyAgICAgICAgZGVjb2RlciA+PiByZXF1aXJlZEZlYXR1cmVzOworICAgICAg
ICBpZiAoIXJlcXVpcmVkRmVhdHVyZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBX
VEZNb3ZlKCpyZXF1aXJlZEZlYXR1cmVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVFcnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzJlZDJiZGViMjQ3YmMyYTk3NzI4OTlmN2JjMGE1OThkNjY0NTQ4Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJv
ci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIldlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVWYWxpZGF0aW9u
RXJyb3IuaCIKKyNpbmNsdWRlIDx2YXJpYW50PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
eworCit1c2luZyBFcnJvciA9IHN0ZDo6dmFyaWFudDxPdXRPZk1lbW9yeUVycm9yLCBWYWxpZGF0
aW9uRXJyb3I+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAppbmRleCA0NzNjNGUxOThmNTM1NTI5
MzZkZTgyYzk4MGY2ZGQwOWM0MWNiMzFlLi4xOTM4MzQyMDk0MmI4ZjA0ZjY0ZGI2NmY4YWI2NWZh
YzVmNTdiODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
RXh0ZW50M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50
M0QuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IEV4dGVudDNERGljdCB7CiAgICAgUEFMOjpX
ZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHdpZHRoOwogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2Vy
Q29vcmRpbmF0ZSBoZWlnaHQ7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIGRl
cHRoT3JBcnJheUxheWVyczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHdp
ZHRoOworICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0
aE9yQXJyYXlMYXllcnM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8RXh0ZW50M0REaWN0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGlu
YXRlPiB3aWR0aDsKKyAgICAgICAgZGVjb2RlciA+PiB3aWR0aDsKKyAgICAgICAgaWYgKCF3aWR0
aCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IGhlaWdodDsKKyAgICAgICAgZGVj
b2RlciA+PiBoZWlnaHQ7CisgICAgICAgIGlmICghaGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZT4gZGVwdGhPckFycmF5TGF5ZXJzOworICAgICAgICBkZWNvZGVyID4+IGRl
cHRoT3JBcnJheUxheWVyczsKKyAgICAgICAgaWYgKCFkZXB0aE9yQXJyYXlMYXllcnMpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqd2lkdGgpLCBXVEZNb3ZlKCpoZWlnaHQpLCBXVEZNb3ZlKCpkZXB0aE9yQXJyYXlMYXllcnMp
IH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBFeHRlbnQzRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8
UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgRXh0ZW50M0REaWN0PjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5k
aW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxU
ZXh0dXJlQmluZGluZ0xheW91dC5oCmluZGV4IDUwZGFiZmEyNTE0NDQzYjMxZDU5N2RkYjZjMTJj
YzU5MDYxYjNkOGUuLjJkNWMyZmZkZGE4NGE2YTQ2MmE4ZDdjZDVkZDhhN2RhYzY3MmY3MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1
cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMjgsNiArMjgsMTQgQEAKIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0IHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsgfSB9OworICAg
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2Ny
aXB0b3IuaAppbmRleCA2ZTgzMDFlM2UxZGUyOTUwYmUzMjA5NjMxNmFkZDY1YjZiNDIxMWYxLi45
M2M3NDUxMmU0MmU4NGZiNWYyMDZjNjcxYzY4MzY3ZWU0M2RkY2ZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVE
ZXNjcmlwdG9yLmgKQEAgLTMyLDYgKzMyLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CiAKIHN0cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKICAgICBQQUw6OldlYkdQVTo6UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JT
cGFjZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNv
bnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNv
bG9yU3BhY2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNl
PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlw
dG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6UHJlZGVmaW5lZENvbG9yU3BhY2U+IGNvbG9yU3BhY2U7CisgICAgICAgIGRlY29kZXIgPj4g
Y29sb3JTcGFjZTsKKyAgICAgICAgaWYgKCFjb2xvclNwYWNlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2Ny
aXB0b3JCYXNlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaAppbmRleCBkZDRjYWIwODFkNWJiY2RiOTVhMjM4ZDQx
YzJlYTUzZjhhNGMxM2U5Li45Zjk2ZWUxNmRjYjZjYTQ3YWE4MmNjMjg0NjY5M2U5NjZlMWNlZjU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0
YXRlLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0
cnVjdCBGcmFnbWVudFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsKICAgICBWZWN0
b3I8Q29sb3JUYXJnZXRTdGF0ZT4gdGFyZ2V0czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFByb2dyYW1tYWJsZVN0YWdlJj4oKnRoaXMpOwor
ICAgICAgICBlbmNvZGVyIDw8IHRhcmdldHM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RnJhZ21lbnRTdGF0ZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb2dyYW1tYWJsZVN0
YWdlPiBwcm9ncmFtbWFibGVTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBwcm9ncmFtbWFibGVT
dGFnZTsKKyAgICAgICAgaWYgKCFwcm9ncmFtbWFibGVTdGFnZSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29sb3JUYXJn
ZXRTdGF0ZT4+IHRhcmdldHM7CisgICAgICAgIGRlY29kZXIgPj4gdGFyZ2V0czsKKyAgICAgICAg
aWYgKCF0YXJnZXRzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXR1cm4geyB7IFdURk1vdmUoKnByb2dyYW1tYWJsZVN0YWdlKSwgV1RGTW92ZSgqdGFyZ2V0
cykgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVy
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgK
aW5kZXggMDM1NGZjNTY2MTg2MDIwN2VhYzQ1NTRjMmJjNmQ2ZGI5MGQyNDA4My4uMTE4NjYwZTc3
ZDY5NTY1OGI4NzIyYjNlNDdlMmZhMmZmNWNlZTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaApAQCAtMzMsNiArMzMsMjcg
QEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUJ1ZmZlciA6
IHB1YmxpYyBJbWFnZURhdGFMYXlvdXQgewogICAgIFdlYkdQVUlkZW50aWZpZXIgYnVmZmVyOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgSW1h
Z2VEYXRhTGF5b3V0Jj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlcjsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJbWFn
ZUNvcHlCdWZmZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxJbWFnZURhdGFMYXlvdXQ+IGltYWdlRGF0YUxheW91dDsKKyAgICAgICAgZGVj
b2RlciA+PiBpbWFnZURhdGFMYXlvdXQ7CisgICAgICAgIGlmICghaW1hZ2VEYXRhTGF5b3V0KQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFdlYkdQVUlkZW50aWZpZXI+IGJ1ZmZlcjsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXI7Cisg
ICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmltYWdlRGF0YUxheW91dCksIFdURk1vdmUoKmJ1
ZmZlcikgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29w
eUV4dGVybmFsSW1hZ2UuaAppbmRleCAwNzExMGRiZDM4MGRjNjU3ZDE4MzdhNDQ2ZGM3ZTBlZDQw
NmMwZGNlLi4xZTU1MjhiOWM1NGNjMWQ5N2RlZmZkYzE5MzJmMmVhMTEwOWE5Y2NiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlF
eHRlcm5hbEltYWdlLmgKQEAgLTMyLDggKzMyLDIzIEBACiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgewogCiBzdHJ1Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSB7Ci0gICAgLy8gc3RkOjp2YXJp
YW50PFJlZlB0cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+IHNvdXJj
ZTsKKyAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBzb3VyY2UuCiAgICAgc3RkOjpvcHRpb25hbDxP
cmlnaW4yRD4gb3JpZ2luOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgb3Jp
Z2luOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEltYWdlQ29weUV4dGVybmFsSW1hZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPE9yaWdpbjJEPj4gb3Jp
Z2luOworICAgICAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqb3JpZ2luKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFn
ZUNvcHlUZXh0dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VD
b3B5VGV4dHVyZS5oCmluZGV4IGJkNWM3MDRiMDRjZjQyNWIyMzI3MWJmMzAwZjcwNzQ3ZDVkOTI3
ODguLjhhMjMwNmE4NDQzMWZjZDU4MDExZjVlYzg4ZmE3YWEwYzQ4OTk3M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaApA
QCAtMzksNiArMzksMzkgQEAgc3RydWN0IEltYWdlQ29weVRleHR1cmUgewogICAgIFBBTDo6V2Vi
R1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSBtaXBMZXZlbDsKICAgICBzdGQ6Om9wdGlvbmFsPE9yaWdp
bjNEPiBvcmlnaW47CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QgYXNwZWN0OworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dHVyZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBtaXBMZXZlbDsKKyAgICAgICAgZW5jb2RlciA8PCBvcmlnaW47CisgICAgICAgIGVuY29k
ZXIgPDwgYXNwZWN0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEltYWdlQ29weVRleHR1cmU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiB0ZXh0dXJl
OworICAgICAgICBkZWNvZGVyID4+IHRleHR1cmU7CisgICAgICAgIGlmICghdGV4dHVyZSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+IG1pcExldmVsOworICAgICAgICBkZWNvZGVy
ID4+IG1pcExldmVsOworICAgICAgICBpZiAoIW1pcExldmVsKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8T3Jp
Z2luM0Q+PiBvcmlnaW47CisgICAgICAgIGRlY29kZXIgPj4gb3JpZ2luOworICAgICAgICBpZiAo
IW9yaWdpbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdD4gYXNwZWN0OworICAgICAgICBk
ZWNvZGVyID4+IGFzcGVjdDsKKyAgICAgICAgaWYgKCFhc3BlY3QpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdGV4dHVyZSks
IFdURk1vdmUoKm1pcExldmVsKSwgV1RGTW92ZSgqb3JpZ2luKSwgV1RGTW92ZSgqYXNwZWN0KSB9
IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFn
Z2VkLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVy
ZVRhZ2dlZC5oCmluZGV4IDU1NWFmMGUxYWJlZjYzNTI0YTc3YTA1ODc0MGNlZjE0NmJhZTIwYmQu
Ljg0OWJjNGU4NjFjMzM2M2E2OTA5M2VjZmY5MWIwZjVkNTIwZTQ2NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVU
YWdnZWQuaApAQCAtMzMsNiArMzMsMzMgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0
cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGljIEltYWdlQ29weVRleHR1cmUgewog
ICAgIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlOwogICAgIGJv
b2wgcHJlbXVsdGlwbGllZEFscGhhOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VDb3B5VGV4dHVyZSY+KCp0aGlzKTsKKyAgICAgICAg
ZW5jb2RlciA8PCBjb2xvclNwYWNlOworICAgICAgICBlbmNvZGVyIDw8IHByZW11bHRpcGxpZWRB
bHBoYTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5VGV4dHVyZT4gaW1hZ2VDb3B5
VGV4dHVyZTsKKyAgICAgICAgZGVjb2RlciA+PiBpbWFnZUNvcHlUZXh0dXJlOworICAgICAgICBp
ZiAoIWltYWdlQ29weVRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByZWRlZmluZWRDb2xvclNwYWNl
PiBjb2xvclNwYWNlOworICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7CisgICAgICAgIGlm
ICghY29sb3JTcGFjZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxib29sPiBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAgICAgIGRlY29k
ZXIgPj4gcHJlbXVsdGlwbGllZEFscGhhOworICAgICAgICBpZiAoIXByZW11bHRpcGxpZWRBbHBo
YSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCppbWFnZUNvcHlUZXh0dXJlKSwgV1RGTW92ZSgqY29sb3JTcGFjZSksIFdURk1v
dmUoKnByZW11bHRpcGxpZWRBbHBoYSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VEYXRhTGF5b3V0LmgKaW5kZXggMWU1ZGQwYTQ2NzE2ZDg4ZDBjZDdhMmE2Y2FhNzA5
NzNkZmJmYjk3NC4uY2U0Y2UzOTE0NzMwM2ZlNzBlMjdmNjlhYWJlMGNlNWMxYTE1N2IzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlv
dXQuaApAQCAtMzQsNiArMzQsMzMgQEAgc3RydWN0IEltYWdlRGF0YUxheW91dCB7CiAgICAgUEFM
OjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U2l6ZTMyPiBieXRlc1BlclJvdzsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXpl
MzI+IHJvd3NQZXJJbWFnZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IG9m
ZnNldDsKKyAgICAgICAgZW5jb2RlciA8PCBieXRlc1BlclJvdzsKKyAgICAgICAgZW5jb2RlciA8
PCByb3dzUGVySW1hZ2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VEYXRhTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zm
c2V0OworICAgICAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gYnl0ZXNQZXJSb3c7CisgICAgICAg
IGRlY29kZXIgPj4gYnl0ZXNQZXJSb3c7CisgICAgICAgIGlmICghYnl0ZXNQZXJSb3cpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPj4gcm93c1BlckltYWdlOworICAgICAgICBk
ZWNvZGVyID4+IHJvd3NQZXJJbWFnZTsKKyAgICAgICAgaWYgKCFyb3dzUGVySW1hZ2UpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqb2Zmc2V0KSwgV1RGTW92ZSgqYnl0ZXNQZXJSb3cpLCBXVEZNb3ZlKCpyb3dzUGVySW1hZ2Up
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgK
aW5kZXggYmQxMWJlMmVjMWVjMWIyZTQ3OTFjOWVkODMyYzlhYzAzMDNiMTc4YS4uOGRlNWQ1OGQ5
ODMxOWY4ZDkxODg4ODZjNDQxMDA5NjAxYzNmOTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oCkBAIC0zMyw2ICszMywz
MyBAQCBzdHJ1Y3QgTXVsdGlzYW1wbGVTdGF0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBj
b3VudDsKICAgICBQQUw6OldlYkdQVTo6U2FtcGxlTWFzayBtYXNrOwogICAgIGJvb2wgYWxwaGFU
b0NvdmVyYWdlRW5hYmxlZDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNv
dW50OworICAgICAgICBlbmNvZGVyIDw8IG1hc2s7CisgICAgICAgIGVuY29kZXIgPDwgYWxwaGFU
b0NvdmVyYWdlRW5hYmxlZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4g
Y291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gY291bnQ7CisgICAgICAgIGlmICghY291bnQpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlNhbXBsZU1hc2s+IG1hc2s7CisgICAgICAgIGRlY29kZXIgPj4gbWFzazsK
KyAgICAgICAgaWYgKCFtYXNrKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFscGhhVG9Db3ZlcmFnZUVuYWJsZWQ7CisgICAg
ICAgIGRlY29kZXIgPj4gYWxwaGFUb0NvdmVyYWdlRW5hYmxlZDsKKyAgICAgICAgaWYgKCFhbHBo
YVRvQ292ZXJhZ2VFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqbWFzayksIFdURk1v
dmUoKmFscGhhVG9Db3ZlcmFnZUVuYWJsZWQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAppbmRleCAyMzg3OTAwYTQ2MTRkZjhm
MGNjYmRlNzg2OTc3YjkyMDdhOTUxZTY2Li40ZmNiOWY1NTg3NzZmNDNjMTY4YmU0MGUyNzIxNmI0
ZTQ5MzBhMzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBT
dHJpbmcgbGFiZWw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBsYWJlbDsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxPYmplY3REZXNjcmlwdG9yQmFzZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbGFiZWw7CisgICAgICAgIGRlY29kZXIgPj4g
bGFiZWw7CisgICAgICAgIGlmICghbGFiZWwpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbGFiZWwpIH0gfTsKKyAgICB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaAppbmRleCBmZGM2NjcxMDMwN2ViNDRkZDkxYmYxZTg3
YzQ2NzRmMTg0YzA2MDgyLi5kZjFmZmZkNTc4NDM5NTIzYmRjNzIxMTQzMzI3YjBjNmZlM2E3Nzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaApAQCAt
MzQsNiArMzQsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBPcmlnaW4y
RERpY3QgewogICAgIFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB4OwogICAgIFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZSB5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVu
Y29kZXIgPDwgeDsKKyAgICAgICAgZW5jb2RlciA8PCB5OworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9yaWdpbjJERGljdD4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4geDsKKyAgICAgICAgZGVjb2RlciA+PiB4OworICAgICAg
ICBpZiAoIXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB5OworICAgICAgICBk
ZWNvZGVyID4+IHk7CisgICAgICAgIGlmICgheSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgqeSkgfSB9
OworICAgIH0KIH07CiAKIHVzaW5nIE9yaWdpbjJEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4yRERpY3Q+OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaAppbmRleCAzZTQ3NDI1MzVjODk0NjQ4
MjM5MGUxZThmNDRjZmIwZDBhNmFmYzhiLi5jZjc0NWE0MjA3NGFjYjIwZmU3NTE0NmMwZTk0NTMw
ZTY3NGM4ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T3JpZ2luM0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2lu
M0QuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IE9yaWdpbjNERGljdCB7CiAgICAgUEFMOjpX
ZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHg7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlIHk7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIHo7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB4OworICAgICAgICBlbmNvZGVyIDw8IHk7Cisg
ICAgICAgIGVuY29kZXIgPDwgejsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPcmlnaW4zRERpY3Q+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW50ZWdlckNv
b3JkaW5hdGU+IHg7CisgICAgICAgIGRlY29kZXIgPj4geDsKKyAgICAgICAgaWYgKCF4KQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4geTsKKyAgICAgICAgZGVjb2RlciA+PiB5Owor
ICAgICAgICBpZiAoIXkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiB6OworICAg
ICAgICBkZWNvZGVyID4+IHo7CisgICAgICAgIGlmICgheikKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp4KSwgV1RGTW92ZSgq
eSksIFdURk1vdmUoKnopIH0gfTsKKyAgICB9CiB9OwogCiB1c2luZyBPcmlnaW4zRCA9IHN0ZDo6
dmFyaWFudDxWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luM0RE
aWN0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRP
Zk1lbW9yeUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZN
ZW1vcnlFcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjNjkzNTc1NzFhZjE3ZWY5ZTdmNzY0MjM4NzdmZjM0
ODRhYTY2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RydWN0IE91dE9m
TWVtb3J5RXJyb3IgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE91dE9mTWVtb3J5RXJyb3I+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgeyB9IH07CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCmlu
ZGV4IGUyNDkyYWUwOThjZWRmODhjZWJjZGU5YTQwMzg4MTA4YmRhNzY5YjMuLjVjNGI3MDc5MDA1
MWNmYzFmN2M1NTk1MTY2OGI5ZjQ1YjA1NWUyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaApAQCAt
MzIsNiArMzIsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RydWN0IFBpcGVs
aW5lRGVzY3JpcHRvckJhc2UgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdl
YkdQVUlkZW50aWZpZXIgbGF5b3V0OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAg
ICAgIGVuY29kZXIgPDwgbGF5b3V0OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBpcGVsaW5lRGVzY3JpcHRvckJhc2U+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNj
cmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
V2ViR1BVSWRlbnRpZmllcj4gbGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IGxheW91dDsKKyAg
ICAgICAgaWYgKCFsYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZNb3Zl
KCpsYXlvdXQpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCmluZGV4IDY0MTczMGViYTY5OWQ3YmUyZTkwZDFjMDRk
YzkyZTEyN2RlMTI3YmYuLjgwYTIwMTdmYmNmOWQ4NGVlMzQwMjQ5N2E2Y2JiNDc5ODZmMDU3N2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTMzLDYgKzMzLDI3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3IgOiBwdWJs
aWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiBi
aW5kR3JvdXBMYXlvdXRzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVu
Y29kZXIgPDwgYmluZEdyb3VwTGF5b3V0czsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmpl
Y3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIg
Pj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJh
c2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFdlYkdQVUlkZW50aWZpZXI+PiBiaW5kR3JvdXBMYXlvdXRzOworICAgICAg
ICBkZWNvZGVyID4+IGJpbmRHcm91cExheW91dHM7CisgICAgICAgIGlmICghYmluZEdyb3VwTGF5
b3V0cykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmJpbmRHcm91cExh
eW91dHMpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUu
aAppbmRleCBiODY4NzViYjUxZWY0YzkzNzJkOGYyNWQyYWIzMzU5MjYxNWI3NGIzLi5kMTgyMzMy
MjNkOTcwYThmMDk5MDYyNTg3ODExNWFhNDc1NGI0ODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaApAQCAtNDIsNiArNDIsNDUg
QEAgc3RydWN0IFByaW1pdGl2ZVN0YXRlIHsKIAogICAgIC8vIFJlcXVpcmVzICJkZXB0aC1jbGlw
LWNvbnRyb2wiIGZlYXR1cmUuCiAgICAgYm9vbCB1bmNsaXBwZWREZXB0aDsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICBlbmNvZGVyIDw8IHRvcG9sb2d5OworICAgICAgICBlbmNvZGVyIDw8IHN0
cmlwSW5kZXhGb3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgZnJvbnRGYWNlOworICAgICAgICBl
bmNvZGVyIDw8IGN1bGxNb2RlOworICAgICAgICBlbmNvZGVyIDw8IHVuY2xpcHBlZERlcHRoOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFByaW1pdGl2ZVN0YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5PiB0b3BvbG9neTsK
KyAgICAgICAgZGVjb2RlciA+PiB0b3BvbG9neTsKKyAgICAgICAgaWYgKCF0b3BvbG9neSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbmRleEZvcm1hdD4+IHN0cmlwSW5kZXhGb3JtYXQ7
CisgICAgICAgIGRlY29kZXIgPj4gc3RyaXBJbmRleEZvcm1hdDsKKyAgICAgICAgaWYgKCFzdHJp
cEluZGV4Rm9ybWF0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGcm9udEZhY2U+IGZyb250RmFjZTsKKyAgICAg
ICAgZGVjb2RlciA+PiBmcm9udEZhY2U7CisgICAgICAgIGlmICghZnJvbnRGYWNlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpDdWxsTW9kZT4gY3VsbE1vZGU7CisgICAgICAgIGRlY29kZXIgPj4gY3VsbE1vZGU7
CisgICAgICAgIGlmICghY3VsbE1vZGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAg
IGRlY29kZXIgPj4gdW5jbGlwcGVkRGVwdGg7CisgICAgICAgIGlmICghdW5jbGlwcGVkRGVwdGgp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqdG9wb2xvZ3kpLCBXVEZNb3ZlKCpzdHJpcEluZGV4Rm9ybWF0KSwgV1RGTW92ZSgq
ZnJvbnRGYWNlKSwgV1RGTW92ZSgqY3VsbE1vZGUpLCBXVEZNb3ZlKCp1bmNsaXBwZWREZXB0aCkg
fSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5o
CmluZGV4IGM1YjQxNjgwNmE5Y2ZjY2ZkYTJmMGYwYmQ2MjM3NjIzMjY0ODIyNzAuLmUxZjBhZTBk
NjlmMjliYjlmZjc4MmVlZDYyZDM2ZDM4NTdjMTlmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCkBAIC0zOCw2ICsz
OCwzMyBAQCBzdHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFdlYkdQVUlkZW50aWZpZXIg
bW9kdWxlOwogICAgIFN0cmluZyBlbnRyeVBvaW50OwogICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBtb2R1bGU7CisgICAgICAgIGVuY29kZXIgPDwgZW50cnlQ
b2ludDsKKyAgICAgICAgZW5jb2RlciA8PCBjb25zdGFudHM7CisgICAgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJvZ3JhbW1hYmxlU3RhZ2U+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxX
ZWJHUFVJZGVudGlmaWVyPiBtb2R1bGU7CisgICAgICAgIGRlY29kZXIgPj4gbW9kdWxlOworICAg
ICAgICBpZiAoIW1vZHVsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVudHJ5UG9pbnQ7CisgICAgICAgIGRlY29kZXIg
Pj4gZW50cnlQb2ludDsKKyAgICAgICAgaWYgKCFlbnRyeVBvaW50KQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBQaXBlbGluZUNvbnN0YW50VmFsdWU+Pj4gY29uc3RhbnRzOworICAgICAg
ICBkZWNvZGVyID4+IGNvbnN0YW50czsKKyAgICAgICAgaWYgKCFjb25zdGFudHMpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
bW9kdWxlKSwgV1RGTW92ZSgqZW50cnlQb2ludCksIFdURk1vdmUoKmNvbnN0YW50cykgfSB9Owor
ICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKaW5k
ZXggY2Q0NWI2NjEwYTdjMDg3NTVjYmVhNTQyYWViMTBiNjAyODg1NzMyMi4uYmUxMTJkOTI1NjY1
ZGJhNGEwMjNhZjQ3ZWVkOWY4MjRhYjkzYjljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaApAQCAtMzcsNiArMzcs
MzkgQEAgc3RydWN0IFF1ZXJ5U2V0RGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9y
QmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZSB0eXBlOwogICAgIFBBTDo6V2ViR1BV
OjpTaXplMzIgY291bnQ7CiAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3Rp
Y05hbWU+IHBpcGVsaW5lU3RhdGlzdGljczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOwor
ICAgICAgICBlbmNvZGVyIDw8IHR5cGU7CisgICAgICAgIGVuY29kZXIgPDwgY291bnQ7CisgICAg
ICAgIGVuY29kZXIgPDwgcGlwZWxpbmVTdGF0aXN0aWNzOworICAgIH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFF1ZXJ5U2V0RGVzY3JpcHRvcj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9i
amVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9y
QmFzZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6UXVlcnlUeXBlPiB0eXBlOworICAgICAgICBkZWNvZGVyID4+
IHR5cGU7CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBjb3VudDsK
KyAgICAgICAgZGVjb2RlciA+PiBjb3VudDsKKyAgICAgICAgaWYgKCFjb3VudCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
UEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFtZT4+IHBpcGVsaW5lU3RhdGlzdGljczsK
KyAgICAgICAgZGVjb2RlciA+PiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAgIGlmICghcGlw
ZWxpbmVTdGF0aXN0aWNzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgq
dHlwZSksIFdURk1vdmUoKmNvdW50KSwgV1RGTW92ZSgqcGlwZWxpbmVTdGF0aXN0aWNzKSB9IH07
CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3Jp
cHRvci5oCmluZGV4IDA4MWJhNjRiMGUxZDkyYTRiOTA3MDdmZTc0MmFlNzEyYzVkNDY0YjMuLmMw
OTYyODA3NjQxYmY5Y2E0MDFkODEyYmEyMDAzMWIyZWE5MDBhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0
b3IuaApAQCAtMzAsNiArMzAsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0
cnVjdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNl
IHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBP
YmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2Jq
ZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVy
ID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JC
YXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSB9IH07CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
LmgKaW5kZXggNTQxNzkxOWNiZDdhYjI1YmU4YmQ4ZWMxOGRjMDNjMGI1ZDU3MTljYy4uZTI5Y2Q1
NGI5NWNhNDBhYzBhZDhiZTU5ZTc0ODMyZDJkZThkYjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29k
ZXJEZXNjcmlwdG9yLmgKQEAgLTMyLDYgKzMyLDMzIEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiBzdHJ1Y3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgUmVuZGVy
UGFzc0xheW91dCB7CiAgICAgYm9vbCBkZXB0aFJlYWRPbmx5OwogICAgIGJvb2wgc3RlbmNpbFJl
YWRPbmx5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
Y29uc3QgUmVuZGVyUGFzc0xheW91dCY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBkZXB0
aFJlYWRPbmx5OworICAgICAgICBlbmNvZGVyIDw8IHN0ZW5jaWxSZWFkT25seTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJC
dW5kbGVFbmNvZGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NMYXlvdXQ+IHJlbmRlclBhc3NMYXlvdXQ7
CisgICAgICAgIGRlY29kZXIgPj4gcmVuZGVyUGFzc0xheW91dDsKKyAgICAgICAgaWYgKCFyZW5k
ZXJQYXNzTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGRlY29kZXIgPj4g
ZGVwdGhSZWFkT25seTsKKyAgICAgICAgaWYgKCFkZXB0aFJlYWRPbmx5KQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN0ZW5j
aWxSZWFkT25seTsKKyAgICAgICAgZGVjb2RlciA+PiBzdGVuY2lsUmVhZE9ubHk7CisgICAgICAg
IGlmICghc3RlbmNpbFJlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKnJlbmRlclBhc3NMYXlvdXQpLCBXVEZNb3Zl
KCpkZXB0aFJlYWRPbmx5KSwgV1RGTW92ZSgqc3RlbmNpbFJlYWRPbmx5KSB9IH07CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dC5oCmluZGV4IGUwZjNjODkzYjFjYmE3MTMwOGY3OGM4Yzc2MjUyMThkNGIzMjcwMTMuLmIwZDg5
MjdlZjJiYThhMzBiOWVhNmI2ZDVkZjQ3ZTE0ODY0ZWM3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFj
aG1lbnQuaApAQCAtNDEsNiArNDEsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NDb2xvckF0dGFjaG1l
bnQgewogCiAgICAgc3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxkb3Vi
bGU+LCBDb2xvckRpY3Q+IGxvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBzdG9y
ZU9wOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgdmlldzsKKyAgICAgICAg
ZW5jb2RlciA8PCByZXNvbHZlVGFyZ2V0OworICAgICAgICBlbmNvZGVyIDw8IGxvYWRWYWx1ZTsK
KyAgICAgICAgZW5jb2RlciA8PCBzdG9yZU9wOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxX
ZWJHUFVJZGVudGlmaWVyPiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAg
IGlmICghdmlldykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxXZWJHUFVJZGVudGlmaWVyPiByZXNvbHZlVGFyZ2V0OworICAgICAgICBk
ZWNvZGVyID4+IHJlc29sdmVUYXJnZXQ7CisgICAgICAgIGlmICghcmVzb2x2ZVRhcmdldCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxz
dGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIENvbG9yRGlj
dD4+IGxvYWRWYWx1ZTsKKyAgICAgICAgZGVjb2RlciA+PiBsb2FkVmFsdWU7CisgICAgICAgIGlm
ICghbG9hZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdG9yZU9wPiBzdG9yZU9wOworICAgICAgICBk
ZWNvZGVyID4+IHN0b3JlT3A7CisgICAgICAgIGlmICghc3RvcmVPcCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp2aWV3KSwg
V1RGTW92ZSgqcmVzb2x2ZVRhcmdldCksIFdURk1vdmUoKmxvYWRWYWx1ZSksIFdURk1vdmUoKnN0
b3JlT3ApIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NE
ZXB0aFN0ZW5jaWxBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAppbmRleCA2OGE0ODRiMDMzZDIx
NTIxYmRkMzYzZmZiYjcwZGEzZjhmMzk4ZGZiLi5lODJlZDZjODFlOGFjYTc4NWM4MDU4YzAzMjQy
NmVlNWYwYzJiYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaApA
QCAtNDQsNiArNDQsNTcgQEAgc3RydWN0IFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
IHsKICAgICBzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgUEFMOjpXZWJHUFU6OlN0
ZW5jaWxWYWx1ZT4gc3RlbmNpbExvYWRWYWx1ZTsKICAgICBQQUw6OldlYkdQVTo6U3RvcmVPcCBz
dGVuY2lsU3RvcmVPcDsKICAgICBib29sIHN0ZW5jaWxSZWFkT25seTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IHZpZXc7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhMb2Fk
VmFsdWU7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdG9yZU9wOworICAgICAgICBlbmNvZGVy
IDw8IGRlcHRoUmVhZE9ubHk7CisgICAgICAgIGVuY29kZXIgPDwgc3RlbmNpbExvYWRWYWx1ZTsK
KyAgICAgICAgZW5jb2RlciA8PCBzdGVuY2lsU3RvcmVPcDsKKyAgICAgICAgZW5jb2RlciA8PCBz
dGVuY2lsUmVhZE9ubHk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJHUFVJ
ZGVudGlmaWVyPiB2aWV3OworICAgICAgICBkZWNvZGVyID4+IHZpZXc7CisgICAgICAgIGlmICgh
dmlldykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+PiBkZXB0aExv
YWRWYWx1ZTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aExvYWRWYWx1ZTsKKyAgICAgICAgaWYg
KCFkZXB0aExvYWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gZGVwdGhTdG9yZU9wOwor
ICAgICAgICBkZWNvZGVyID4+IGRlcHRoU3RvcmVPcDsKKyAgICAgICAgaWYgKCFkZXB0aFN0b3Jl
T3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gZGVwdGhSZWFkT25seTsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFJlYWRP
bmx5OworICAgICAgICBpZiAoIWRlcHRoUmVhZE9ubHkpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2Vi
R1BVOjpMb2FkT3AsIFBBTDo6V2ViR1BVOjpTdGVuY2lsVmFsdWU+PiBzdGVuY2lsTG9hZFZhbHVl
OworICAgICAgICBkZWNvZGVyID4+IHN0ZW5jaWxMb2FkVmFsdWU7CisgICAgICAgIGlmICghc3Rl
bmNpbExvYWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmVPcD4gc3RlbmNpbFN0b3JlT3A7Cisg
ICAgICAgIGRlY29kZXIgPj4gc3RlbmNpbFN0b3JlT3A7CisgICAgICAgIGlmICghc3RlbmNpbFN0
b3JlT3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gc3RlbmNpbFJlYWRPbmx5OworICAgICAgICBkZWNvZGVyID4+IHN0ZW5j
aWxSZWFkT25seTsKKyAgICAgICAgaWYgKCFzdGVuY2lsUmVhZE9ubHkpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqdmlldyks
IFdURk1vdmUoKmRlcHRoTG9hZFZhbHVlKSwgV1RGTW92ZSgqZGVwdGhTdG9yZU9wKSwgV1RGTW92
ZSgqZGVwdGhSZWFkT25seSksIFdURk1vdmUoKnN0ZW5jaWxMb2FkVmFsdWUpLCBXVEZNb3ZlKCpz
dGVuY2lsU3RvcmVPcCksIFdURk1vdmUoKnN0ZW5jaWxSZWFkT25seSkgfSB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCmluZGV4IDg3
ZTgxMGEyYjVlNzNmNTdhYjlkOTBmYjNjNzJiZDFlN2FkMjE3YjQuLmJhNGNlZTIxMGNhMDBiZWI5
ZThiODc3ZmY3OTcyNmM0NWZiZDgxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCkBAIC00MCw2ICs0MCw0
NSBAQCBzdHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRv
ckJhc2UgewogICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1l
bnQ+IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQ7CiAgICAgV2ViR1BVSWRlbnRpZmllciBvY2NsdXNp
b25RdWVyeVNldDsKICAgICBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVzdGFtcFdyaXRl
czsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0
IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IGNvbG9y
QXR0YWNobWVudHM7CisgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdGVuY2lsQXR0YWNobWVudDsK
KyAgICAgICAgZW5jb2RlciA8PCBvY2NsdXNpb25RdWVyeVNldDsKKyAgICAgICAgZW5jb2RlciA8
PCB0aW1lc3RhbXBXcml0ZXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc0Rlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9y
QmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CisgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+PiBjb2xvckF0dGFjaG1lbnRzOworICAgICAgICBk
ZWNvZGVyID4+IGNvbG9yQXR0YWNobWVudHM7CisgICAgICAgIGlmICghY29sb3JBdHRhY2htZW50
cykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Pj4gZGVw
dGhTdGVuY2lsQXR0YWNobWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBkZXB0aFN0ZW5jaWxBdHRh
Y2htZW50OworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BVSWRl
bnRpZmllcj4gb2NjbHVzaW9uUXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gb2NjbHVzaW9u
UXVlcnlTZXQ7CisgICAgICAgIGlmICghb2NjbHVzaW9uUXVlcnlTZXQpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1Rp
bWVzdGFtcFdyaXRlcz4gdGltZXN0YW1wV3JpdGVzOworICAgICAgICBkZWNvZGVyID4+IHRpbWVz
dGFtcFdyaXRlczsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZXMpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0
RGVzY3JpcHRvckJhc2UpLCBXVEZNb3ZlKCpjb2xvckF0dGFjaG1lbnRzKSwgV1RGTW92ZSgqZGVw
dGhTdGVuY2lsQXR0YWNobWVudCksIFdURk1vdmUoKm9jY2x1c2lvblF1ZXJ5U2V0KSwgV1RGTW92
ZSgqdGltZXN0YW1wV3JpdGVzKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0xheW91dC5oCmluZGV4IGExNzJlZTI1Y2VhMTVlZGU3M2M1NGEzN2ZhZjc1Yzc3
YzU4MjQ4ZDEuLjRlZTMxZWUzNmFjYmU5Y2M3ZDRmOGJhMGQ1YjYyZGIzN2E3MTQzOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlv
dXQuaApAQCAtMzcsNiArMzcsMzkgQEAgc3RydWN0IFJlbmRlclBhc3NMYXlvdXQgOiBwdWJsaWMg
T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdD4gY29sb3JGb3JtYXRzOwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ+IGRlcHRoU3RlbmNpbEZvcm1hdDsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTMyIHNh
bXBsZUNvdW50OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIg
PDwgY29sb3JGb3JtYXRzOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3RlbmNpbEZvcm1hdDsK
KyAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVDb3VudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0
RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+
IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNl
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4+IGNvbG9yRm9ybWF0czsKKyAg
ICAgICAgZGVjb2RlciA+PiBjb2xvckZvcm1hdHM7CisgICAgICAgIGlmICghY29sb3JGb3JtYXRz
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlv
bmFsPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+PiBkZXB0aFN0ZW5j
aWxGb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZGVwdGhTdGVuY2lsRm9ybWF0OworICAgICAg
ICBpZiAoIWRlcHRoU3RlbmNpbEZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTMyPiBzYW1wbGVD
b3VudDsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3VudDsKKyAgICAgICAgaWYgKCFzYW1w
bGVDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmNvbG9yRm9y
bWF0cyksIFdURk1vdmUoKmRlcHRoU3RlbmNpbEZvcm1hdCksIFdURk1vdmUoKnNhbXBsZUNvdW50
KSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcFdyaXRlcy5oCmluZGV4IDhiMWViYTc0NjVmMTc2NTlmODBjOGExMjFlMmExZWY4
ZWNhMTU5ZDQuLjhiOTI2M2E3YzQ4MGQwODMxZjU0NDk5NmZlZTExYjI3MDRlNGVhZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRl
clBhc3NUaW1lc3RhbXBXcml0ZXMuaApAQCAtMzcsNiArMzcsMzMgQEAgc3RydWN0IFJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZSB7CiAgICAgV2ViR1BVSWRlbnRpZmllciBxdWVyeVNldDsKICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIHF1ZXJ5SW5kZXg7CiAgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBMb2NhdGlvbiBsb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHF1ZXJ5U2V0OworICAgICAgICBlbmNvZGVyIDw8IHF1ZXJ5SW5kZXg7CisgICAg
ICAgIGVuY29kZXIgPDwgbG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViR1BV
SWRlbnRpZmllcj4gcXVlcnlTZXQ7CisgICAgICAgIGRlY29kZXIgPj4gcXVlcnlTZXQ7CisgICAg
ICAgIGlmICghcXVlcnlTZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemUzMj4gcXVlcnlJbmRleDsKKyAg
ICAgICAgZGVjb2RlciA+PiBxdWVyeUluZGV4OworICAgICAgICBpZiAoIXF1ZXJ5SW5kZXgpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbj4gbG9jYXRpb247CisgICAg
ICAgIGRlY29kZXIgPj4gbG9jYXRpb247CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
cXVlcnlTZXQpLCBXVEZNb3ZlKCpxdWVyeUluZGV4KSwgV1RGTW92ZSgqbG9jYXRpb24pIH0gfTsK
KyAgICB9CiB9OwogCiB1c2luZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9yPFJl
bmRlclBhc3NUaW1lc3RhbXBXcml0ZT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggOWEy
NzFjNzNkNTM1MTgzYjA4NjE2YzNiNjcyODYyODUzZmQ2ZmM4ZC4uNmMyZWY3MzA5MmFhMjRjYWYz
ZDU5NDE3YjRjYjA2MWE5OTJlZjEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtNDEs
NiArNDEsNTEgQEAgc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBl
bGluZURlc2NyaXB0b3JCYXNlIHsKICAgICBzdGQ6Om9wdGlvbmFsPERlcHRoU3RlbmNpbFN0YXRl
PiBkZXB0aFN0ZW5jaWw7CiAgICAgc3RkOjpvcHRpb25hbDxNdWx0aXNhbXBsZVN0YXRlPiBtdWx0
aXNhbXBsZTsKICAgICBzdGQ6Om9wdGlvbmFsPEZyYWdtZW50U3RhdGU+IGZyYWdtZW50OworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCB2ZXJ0ZXg7Cisg
ICAgICAgIGVuY29kZXIgPDwgcHJpbWl0aXZlOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoU3Rl
bmNpbDsKKyAgICAgICAgZW5jb2RlciA8PCBtdWx0aXNhbXBsZTsKKyAgICAgICAgZW5jb2RlciA8
PCBmcmFnbWVudDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JC
YXNlPiBwaXBlbGluZURlc2NyaXB0b3JCYXNlOworICAgICAgICBkZWNvZGVyID4+IHBpcGVsaW5l
RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlmICghcGlwZWxpbmVEZXNjcmlwdG9yQmFzZSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxW
ZXJ0ZXhTdGF0ZT4gdmVydGV4OworICAgICAgICBkZWNvZGVyID4+IHZlcnRleDsKKyAgICAgICAg
aWYgKCF2ZXJ0ZXgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQcmltaXRpdmVTdGF0ZT4+IHByaW1pdGl2ZTsK
KyAgICAgICAgZGVjb2RlciA+PiBwcmltaXRpdmU7CisgICAgICAgIGlmICghcHJpbWl0aXZlKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8RGVwdGhTdGVuY2lsU3RhdGU+PiBkZXB0aFN0ZW5jaWw7CisgICAgICAg
IGRlY29kZXIgPj4gZGVwdGhTdGVuY2lsOworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxz
dGQ6Om9wdGlvbmFsPE11bHRpc2FtcGxlU3RhdGU+PiBtdWx0aXNhbXBsZTsKKyAgICAgICAgZGVj
b2RlciA+PiBtdWx0aXNhbXBsZTsKKyAgICAgICAgaWYgKCFtdWx0aXNhbXBsZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPEZyYWdtZW50U3RhdGU+PiBmcmFnbWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBmcmFn
bWVudDsKKyAgICAgICAgaWYgKCFmcmFnbWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpwaXBlbGluZURlc2NyaXB0b3JC
YXNlKSwgV1RGTW92ZSgqdmVydGV4KSwgV1RGTW92ZSgqcHJpbWl0aXZlKSwgV1RGTW92ZSgqZGVw
dGhTdGVuY2lsKSwgV1RGTW92ZSgqbXVsdGlzYW1wbGUpLCBXVEZNb3ZlKCpmcmFnbWVudCkgfSB9
OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25z
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmgKaW5kZXggYTkxNzhkNjE3NzIzNzM2NzM4ZmYwZDYwZmQzNTBlZjMxZDNmY2VjOS4uMDZi
MDMxYzcxMmVkZTg3ZjU4NTlhM2Q1M2IzYjQ2ZWQ1OTExMjMzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMu
aApAQCAtMzMsNiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBS
ZXF1ZXN0QWRhcHRlck9wdGlvbnMgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBv
d2VyUHJlZmVyZW5jZT4gcG93ZXJQcmVmZXJlbmNlOwogICAgIGJvb2wgZm9yY2VGYWxsYmFja0Fk
YXB0ZXI7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBwb3dlclByZWZlcmVu
Y2U7CisgICAgICAgIGVuY29kZXIgPDwgZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEFk
YXB0ZXJPcHRpb25zPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlPj4g
cG93ZXJQcmVmZXJlbmNlOworICAgICAgICBkZWNvZGVyID4+IHBvd2VyUHJlZmVyZW5jZTsKKyAg
ICAgICAgaWYgKCFwb3dlclByZWZlcmVuY2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7
CisgICAgICAgIGRlY29kZXIgPj4gZm9yY2VGYWxsYmFja0FkYXB0ZXI7CisgICAgICAgIGlmICgh
Zm9yY2VGYWxsYmFja0FkYXB0ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqcG93ZXJQcmVmZXJlbmNlKSwgV1RGTW92ZSgq
Zm9yY2VGYWxsYmFja0FkYXB0ZXIpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaAppbmRleCA5MGVhOTg3YTExODYzZTNjMTE3ZDI2
OTVjNTM3NmU1YzA0NGY0MjRmLi45NTkyMWVhNTg3NDU1M2Q4ZmJmMGNkNWE1M2I0ZDAwNTAwNmUz
MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U2FtcGxlckJpbmRpbmdMYXlvdXQuaApAQCAtMzEsNiArMzEsMjEgQEAgbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIAogc3RydWN0IFNhbXBsZXJCaW5kaW5nTGF5b3V0IHsKICAgICBQQUw6Oldl
YkdQVTo6U2FtcGxlckJpbmRpbmdUeXBlIHR5cGU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCB0eXBlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFNhbXBsZXJCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBs
ZXJCaW5kaW5nVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0eXBlOworICAgICAgICBp
ZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqdHlwZSkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oCmluZGV4IGQ3Yzc0N2E5NDc1NmNjYjQwM2RmM2ZlNTVm
MWI1MzhmNTcyMTgxMjAuLmI4ZDg1OTQ4NzE0MmJjY2ZhYzUxMTVmOWJmYWQ5ZTM5Y2IwYzUzYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVy
RGVzY3JpcHRvci5oCkBAIC00NSw2ICs0NSw4MSBAQCBzdHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3Ig
OiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIGZsb2F0IGxvZE1heENsYW1wOwog
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4gY29tcGFyZTsK
ICAgICB1aW50MTZfdCBtYXhBbmlzb3Ryb3B5OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7
CisgICAgICAgIGVuY29kZXIgPDwgYWRkcmVzc01vZGVVOworICAgICAgICBlbmNvZGVyIDw8IGFk
ZHJlc3NNb2RlVjsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRyZXNzTW9kZVc7CisgICAgICAgIGVu
Y29kZXIgPDwgbWFnRmlsdGVyOworICAgICAgICBlbmNvZGVyIDw8IG1pbkZpbHRlcjsKKyAgICAg
ICAgZW5jb2RlciA8PCBtaXBtYXBGaWx0ZXI7CisgICAgICAgIGVuY29kZXIgPDwgbG9kTWluQ2xh
bXA7CisgICAgICAgIGVuY29kZXIgPDwgbG9kTWF4Q2xhbXA7CisgICAgICAgIGVuY29kZXIgPDwg
Y29tcGFyZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhBbmlzb3Ryb3B5OworICAgIH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNhbXBsZXJEZXNj
cmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAg
ICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBpZiAoIW9iamVjdERl
c2NyaXB0b3JCYXNlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZT4gYWRkcmVzc01vZGVVOwor
ICAgICAgICBkZWNvZGVyID4+IGFkZHJlc3NNb2RlVTsKKyAgICAgICAgaWYgKCFhZGRyZXNzTW9k
ZVUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlPiBhZGRyZXNzTW9kZVY7CisgICAgICAgIGRl
Y29kZXIgPj4gYWRkcmVzc01vZGVWOworICAgICAgICBpZiAoIWFkZHJlc3NNb2RlVikKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6QWRkcmVzc01vZGU+IGFkZHJlc3NNb2RlVzsKKyAgICAgICAgZGVjb2RlciA+PiBh
ZGRyZXNzTW9kZVc7CisgICAgICAgIGlmICghYWRkcmVzc01vZGVXKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpG
aWx0ZXJNb2RlPiBtYWdGaWx0ZXI7CisgICAgICAgIGRlY29kZXIgPj4gbWFnRmlsdGVyOworICAg
ICAgICBpZiAoIW1hZ0ZpbHRlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RmlsdGVyTW9kZT4gbWluRmlsdGVy
OworICAgICAgICBkZWNvZGVyID4+IG1pbkZpbHRlcjsKKyAgICAgICAgaWYgKCFtaW5GaWx0ZXIp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkZpbHRlck1vZGU+IG1pcG1hcEZpbHRlcjsKKyAgICAgICAgZGVjb2Rl
ciA+PiBtaXBtYXBGaWx0ZXI7CisgICAgICAgIGlmICghbWlwbWFwRmlsdGVyKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBs
b2RNaW5DbGFtcDsKKyAgICAgICAgZGVjb2RlciA+PiBsb2RNaW5DbGFtcDsKKyAgICAgICAgaWYg
KCFsb2RNaW5DbGFtcCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gbG9kTWF4Q2xhbXA7CisgICAgICAgIGRlY29kZXIgPj4g
bG9kTWF4Q2xhbXA7CisgICAgICAgIGlmICghbG9kTWF4Q2xhbXApCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uPj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+
PiBjb21wYXJlOworICAgICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IG1heEFuaXNvdHJv
cHk7CisgICAgICAgIGRlY29kZXIgPj4gbWF4QW5pc290cm9weTsKKyAgICAgICAgaWYgKCFtYXhB
bmlzb3Ryb3B5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKm9iamVjdERlc2NyaXB0b3JCYXNlKSwgV1RGTW92ZSgqYWRkcmVz
c01vZGVVKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVWKSwgV1RGTW92ZSgqYWRkcmVzc01vZGVXKSwg
V1RGTW92ZSgqbWFnRmlsdGVyKSwgV1RGTW92ZSgqbWluRmlsdGVyKSwgV1RGTW92ZSgqbWlwbWFw
RmlsdGVyKSwgV1RGTW92ZSgqbG9kTWluQ2xhbXApLCBXVEZNb3ZlKCpsb2RNYXhDbGFtcCksIFdU
Rk1vdmUoKmNvbXBhcmUpLCBXVEZNb3ZlKCptYXhBbmlzb3Ryb3B5KSB9IH07CisgICAgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCmluZGV4
IDdjMWRhZmZjYmZmNWUyODRmMGQ5NzkyZjI0ODY1Yzg4Y2U1MDJmYmQuLmRkNzc4NmNlOGI5NjYx
MTZkMjY5YTI1MTBhNWYyZjgyMjljMTcwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaApAQCAtMzMs
NiArMzMsMjcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHN0cnVjdCBTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBTdHJpbmcg
Y29kZTsKICAgICAvLyBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBzb3VyY2VNYXA7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBjb2RlOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYWRl
ck1vZHVsZURlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJh
c2U7CisgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIGlm
ICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb2RlOworICAgICAgICBkZWNvZGVy
ID4+IGNvZGU7CisgICAgICAgIGlmICghY29kZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvYmplY3REZXNjcmlwdG9yQmFz
ZSksIFdURk1vdmUoKmNvZGUpIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVN0ZW5jaWxGYWNlU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
dGVuY2lsRmFjZVN0YXRlLmgKaW5kZXggNjVhNmIzYWE5YTU0N2YzMjY2MDI0MDAyMzkwNjE4MWZj
MTVhZWMzMS4uZTQwMWI2NGNkMzUyZmZhZDBmNmE1NDg3NTcxMzI1OTcyZDM4MjQ4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oCkBAIC0zNSw2ICszNSwzOSBAQCBzdHJ1Y3QgU3RlbmNpbEZhY2VTdGF0ZSB7CiAgICAgUEFM
OjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb24gZmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVu
Y2lsT3BlcmF0aW9uIGRlcHRoRmFpbE9wOwogICAgIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0
aW9uIHBhc3NPcDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvbXBhcmU7
CisgICAgICAgIGVuY29kZXIgPDwgZmFpbE9wOworICAgICAgICBlbmNvZGVyIDw8IGRlcHRoRmFp
bE9wOworICAgICAgICBlbmNvZGVyIDw8IHBhc3NPcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdGVuY2lsRmFjZVN0YXRlPiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkNvbXBhcmVGdW5jdGlvbj4gY29tcGFyZTsKKyAgICAgICAgZGVjb2RlciA+PiBjb21w
YXJlOworICAgICAgICBpZiAoIWNvbXBhcmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRp
b24+IGZhaWxPcDsKKyAgICAgICAgZGVjb2RlciA+PiBmYWlsT3A7CisgICAgICAgIGlmICghZmFp
bE9wKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uPiBkZXB0aEZhaWxPcDsKKyAgICAg
ICAgZGVjb2RlciA+PiBkZXB0aEZhaWxPcDsKKyAgICAgICAgaWYgKCFkZXB0aEZhaWxPcCkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbj4gcGFzc09wOworICAgICAgICBkZWNvZGVyID4+
IHBhc3NPcDsKKyAgICAgICAgaWYgKCFwYXNzT3ApCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29tcGFyZSksIFdURk1vdmUo
KmZhaWxPcCksIFdURk1vdmUoKmRlcHRoRmFpbE9wKSwgV1RGTW92ZSgqcGFzc09wKSB9IH07Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJp
bmRpbmdMYXlvdXQuaAppbmRleCBmMzEwMzA2MWIwNmZlMDYyY2VlYzAzMTFkMjBlMDM1Mjk2OWMw
OGZiLi5jMjViMWFmMzQxYWFhMDcwMTU5NjAwNTU4ZTNjYjY2NzAwMTgzYTlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VU
ZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0zNSw2ICszNSwzMyBAQCBzdHJ1Y3QgU3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nl
c3MgYWNjZXNzOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24gdmlld0RpbWVuc2lvbjsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGFjY2VzczsKKyAgICAgICAgZW5jb2RlciA8PCBm
b3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgdmlld0RpbWVuc2lvbjsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdG9yYWdlVGV4dHVy
ZUJpbmRpbmdMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3M+IGFjY2VzczsK
KyAgICAgICAgZGVjb2RlciA+PiBhY2Nlc3M7CisgICAgICAgIGlmICghYWNjZXNzKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBmb3JtYXQ7CisgICAgICAgIGRlY29kZXIgPj4gZm9ybWF0
OworICAgICAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNp
b24+IHZpZXdEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsKKyAg
ICAgICAgaWYgKCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmFjY2VzcyksIFdURk1vdmUoKmZvcm1h
dCksIFdURk1vdmUoKnZpZXdEaW1lbnNpb24pIH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGYzODkwM2UwNzI0MzIz
OTE4MzZjMjY2MzMzZmM1OTViZGM3NjIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgeworCitzdHJ1Y3QgU3VwcG9ydGVkRmVhdHVyZXMgeworICAgIFZlY3RvcjxTdHJpbmc+IGZl
YXR1cmVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgZmVhdHVyZXM7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
U3VwcG9ydGVkRmVhdHVyZXM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gZmVhdHVyZXM7CisgICAgICAgIGRlY29k
ZXIgPj4gZmVhdHVyZXM7CisgICAgICAgIGlmICghZmVhdHVyZXMpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqZmVhdHVyZXMp
IH0gfTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZhY2EwM2VkNGZlZTM1MTY2ODU5MzdiY2UxZDZkZmQyYTJjOTZkNTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVk
TGltaXRzLmgKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPGNzdGRpbnQ+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0cnVj
dCBTdXBwb3J0ZWRMaW1pdHMgeworICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24xRCB7
IDAgfTsKKyAgICB1aW50MzJfdCBtYXhUZXh0dXJlRGltZW5zaW9uMkQgeyAwIH07CisgICAgdWlu
dDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjNEIHsgMCB9OworICAgIHVpbnQzMl90IG1heFRleHR1
cmVBcnJheUxheWVycyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhCaW5kR3JvdXBzIHsgMCB9Owor
ICAgIHVpbnQzMl90IG1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IHsg
MCB9OworICAgIHVpbnQzMl90IG1heER5bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5
b3V0IHsgMCB9OworICAgIHVpbnQzMl90IG1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdl
IHsgMCB9OworICAgIHVpbnQzMl90IG1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UgeyAwIH07Cisg
ICAgdWludDMyX3QgbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1
aW50MzJfdCBtYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSB7IDAgfTsKKyAgICB1aW50
MzJfdCBtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlIHsgMCB9OworICAgIHVpbnQ2NF90
IG1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBtYXhTdG9y
YWdlQnVmZmVyQmluZGluZ1NpemUgeyAwIH07CisgICAgdWludDMyX3QgbWluVW5pZm9ybUJ1ZmZl
ck9mZnNldEFsaWdubWVudCB7IDAgfTsKKyAgICB1aW50MzJfdCBtaW5TdG9yYWdlQnVmZmVyT2Zm
c2V0QWxpZ25tZW50IHsgMCB9OworICAgIHVpbnQzMl90IG1heFZlcnRleEJ1ZmZlcnMgeyAwIH07
CisgICAgdWludDMyX3QgbWF4VmVydGV4QXR0cmlidXRlcyB7IDAgfTsKKyAgICB1aW50MzJfdCBt
YXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhJbnRlclN0
YWdlU2hhZGVyQ29tcG9uZW50cyB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dy
b3VwU3RvcmFnZVNpemUgeyAwIH07CisgICAgdWludDMyX3QgbWF4Q29tcHV0ZUludm9jYXRpb25z
UGVyV29ya2dyb3VwIHsgMCB9OworICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBTaXpl
WCB7IDAgfTsKKyAgICB1aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkgeyAwIH07Cisg
ICAgdWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaIHsgMCB9OworICAgIHVpbnQzMl90
IG1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uIHsgMCB9OworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7
CisgICAgICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZURpbWVuc2lvbjFEOworICAgICAgICBlbmNv
ZGVyIDw8IG1heFRleHR1cmVEaW1lbnNpb24yRDsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhUZXh0
dXJlRGltZW5zaW9uM0Q7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VGV4dHVyZUFycmF5TGF5ZXJz
OworICAgICAgICBlbmNvZGVyIDw8IG1heEJpbmRHcm91cHM7CisgICAgICAgIGVuY29kZXIgPDwg
bWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGVuY29k
ZXIgPDwgbWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAg
IGVuY29kZXIgPDwgbWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVu
Y29kZXIgPDwgbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZW5jb2RlciA8PCBt
YXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0
b3JhZ2VUZXh0dXJlc1BlclNoYWRlclN0YWdlOworICAgICAgICBlbmNvZGVyIDw8IG1heFVuaWZv
cm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2U7CisgICAgICAgIGVuY29kZXIgPDwgbWF4VW5pZm9ybUJ1
ZmZlckJpbmRpbmdTaXplOworICAgICAgICBlbmNvZGVyIDw8IG1heFN0b3JhZ2VCdWZmZXJCaW5k
aW5nU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5Vbmlmb3JtQnVmZmVyT2Zmc2V0QWxpZ25t
ZW50OworICAgICAgICBlbmNvZGVyIDw8IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7
CisgICAgICAgIGVuY29kZXIgPDwgbWF4VmVydGV4QnVmZmVyczsKKyAgICAgICAgZW5jb2RlciA8
PCBtYXhWZXJ0ZXhBdHRyaWJ1dGVzOworICAgICAgICBlbmNvZGVyIDw8IG1heFZlcnRleEJ1ZmZl
ckFycmF5U3RyaWRlOworICAgICAgICBlbmNvZGVyIDw8IG1heEludGVyU3RhZ2VTaGFkZXJDb21w
b25lbnRzOworICAgICAgICBlbmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6
ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtYXhDb21wdXRlSW52b2NhdGlvbnNQZXJXb3JrZ3JvdXA7
CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBl
bmNvZGVyIDw8IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAgICAgZW5jb2RlciA8PCBt
YXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7CisgICAgICAgIGVuY29kZXIgPDwgbWF4Q29tcHV0ZVdv
cmtncm91cHNQZXJEaW1lbnNpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkTGltaXRzPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRleHR1
cmVEaW1lbnNpb24xRDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlRGltZW5zaW9uMUQ7
CisgICAgICAgIGlmICghbWF4VGV4dHVyZURpbWVuc2lvbjFEKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhUZXh0
dXJlRGltZW5zaW9uMkQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGV4dHVyZURpbWVuc2lvbjJE
OworICAgICAgICBpZiAoIW1heFRleHR1cmVEaW1lbnNpb24yRCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VGV4
dHVyZURpbWVuc2lvbjNEOworICAgICAgICBkZWNvZGVyID4+IG1heFRleHR1cmVEaW1lbnNpb24z
RDsKKyAgICAgICAgaWYgKCFtYXhUZXh0dXJlRGltZW5zaW9uM0QpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFRl
eHR1cmVBcnJheUxheWVyczsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhUZXh0dXJlQXJyYXlMYXll
cnM7CisgICAgICAgIGlmICghbWF4VGV4dHVyZUFycmF5TGF5ZXJzKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhC
aW5kR3JvdXBzOworICAgICAgICBkZWNvZGVyID4+IG1heEJpbmRHcm91cHM7CisgICAgICAgIGlm
ICghbWF4QmluZEdyb3VwcykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVy
UGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGRlY29kZXIgPj4gbWF4RHluYW1pY1VuaWZvcm1CdWZm
ZXJzUGVyUGlwZWxpbmVMYXlvdXQ7CisgICAgICAgIGlmICghbWF4RHluYW1pY1VuaWZvcm1CdWZm
ZXJzUGVyUGlwZWxpbmVMYXlvdXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBkZWNvZGVyID4+IG1heER5bmFtaWNTdG9yYWdl
QnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0OworICAgICAgICBpZiAoIW1heER5bmFtaWNTdG9yYWdl
QnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhTYW1wbGVkVGV4dHVyZXNQ
ZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhTYW1wbGVkVGV4dHVyZXNQZXJT
aGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFn
ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDx1aW50MzJfdD4gbWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2Rl
ciA+PiBtYXhTYW1wbGVyc1BlclNoYWRlclN0YWdlOworICAgICAgICBpZiAoIW1heFNhbXBsZXJz
UGVyU2hhZGVyU3RhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3Rh
Z2U7CisgICAgICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZTsK
KyAgICAgICAgaWYgKCFtYXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90
PiBtYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBt
YXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZTsKKyAgICAgICAgaWYgKCFtYXhTdG9yYWdl
VGV4dHVyZXNQZXJTaGFkZXJTdGFnZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VW5pZm9ybUJ1ZmZlcnNQZXJT
aGFkZXJTdGFnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRl
clN0YWdlOworICAgICAgICBpZiAoIW1heFVuaWZvcm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2UpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IG1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+
PiBtYXhVbmlmb3JtQnVmZmVyQmluZGluZ1NpemU7CisgICAgICAgIGlmICghbWF4VW5pZm9ybUJ1
ZmZlckJpbmRpbmdTaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemU7
CisgICAgICAgIGRlY29kZXIgPj4gbWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplOworICAgICAg
ICBpZiAoIW1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWluVW5pZm9y
bUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAgICAgICAgZGVjb2RlciA+PiBtaW5Vbmlmb3JtQnVm
ZmVyT2Zmc2V0QWxpZ25tZW50OworICAgICAgICBpZiAoIW1pblVuaWZvcm1CdWZmZXJPZmZzZXRB
bGlnbm1lbnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudDsKKyAgICAg
ICAgaWYgKCFtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50KQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhW
ZXJ0ZXhCdWZmZXJzOworICAgICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlcnM7CisgICAg
ICAgIGlmICghbWF4VmVydGV4QnVmZmVycykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4VmVydGV4QXR0cmlidXRl
czsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhWZXJ0ZXhBdHRyaWJ1dGVzOworICAgICAgICBpZiAo
IW1heFZlcnRleEF0dHJpYnV0ZXMpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heFZlcnRleEJ1ZmZlckFycmF5U3Ry
aWRlOworICAgICAgICBkZWNvZGVyID4+IG1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlOworICAg
ICAgICBpZiAoIW1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhJbnRl
clN0YWdlU2hhZGVyQ29tcG9uZW50czsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhJbnRlclN0YWdl
U2hhZGVyQ29tcG9uZW50czsKKyAgICAgICAgaWYgKCFtYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9u
ZW50cykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpv
cHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplOworICAgICAg
ICBkZWNvZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6ZTsKKyAgICAgICAgaWYg
KCFtYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVJ
bnZvY2F0aW9uc1Blcldvcmtncm91cDsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlSW52
b2NhdGlvbnNQZXJXb3JrZ3JvdXA7CisgICAgICAgIGlmICghbWF4Q29tcHV0ZUludm9jYXRpb25z
UGVyV29ya2dyb3VwKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVg7CisgICAg
ICAgIGRlY29kZXIgPj4gbWF4Q29tcHV0ZVdvcmtncm91cFNpemVYOworICAgICAgICBpZiAoIW1h
eENvbXB1dGVXb3JrZ3JvdXBTaXplWCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4Q29tcHV0ZVdvcmtncm91cFNp
emVZOworICAgICAgICBkZWNvZGVyID4+IG1heENvbXB1dGVXb3JrZ3JvdXBTaXplWTsKKyAgICAg
ICAgaWYgKCFtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1heENvbXB1dGVX
b3JrZ3JvdXBTaXplWjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhDb21wdXRlV29ya2dyb3VwU2l6
ZVo7CisgICAgICAgIGlmICghbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBt
YXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgZGVjb2RlciA+PiBtYXhD
b21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbjsKKyAgICAgICAgaWYgKCFtYXhDb21wdXRlV29y
a2dyb3Vwc1BlckRpbWVuc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgcmV0dXJuIHsgeworICAgICAgICAgICAgKm1heFRleHR1cmVEaW1lbnNpb24xRCwK
KyAgICAgICAgICAgICptYXhUZXh0dXJlRGltZW5zaW9uMkQsCisgICAgICAgICAgICAqbWF4VGV4
dHVyZURpbWVuc2lvbjNELAorICAgICAgICAgICAgKm1heFRleHR1cmVBcnJheUxheWVycywKKyAg
ICAgICAgICAgICptYXhCaW5kR3JvdXBzLAorICAgICAgICAgICAgKm1heER5bmFtaWNVbmlmb3Jt
QnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heER5bmFtaWNTdG9yYWdl
QnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICAgICAgKm1heFNhbXBsZWRUZXh0dXJl
c1BlclNoYWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2Us
CisgICAgICAgICAgICAqbWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAg
ICAgICptYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgICAgICptYXhV
bmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICAgICAgKm1heFVuaWZvcm1CdWZm
ZXJCaW5kaW5nU2l6ZSwKKyAgICAgICAgICAgICptYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemUs
CisgICAgICAgICAgICAqbWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAg
ICAgICptaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50LAorICAgICAgICAgICAgKm1heFZl
cnRleEJ1ZmZlcnMsCisgICAgICAgICAgICAqbWF4VmVydGV4QXR0cmlidXRlcywKKyAgICAgICAg
ICAgICptYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSwKKyAgICAgICAgICAgICptYXhJbnRlclN0
YWdlU2hhZGVyQ29tcG9uZW50cywKKyAgICAgICAgICAgICptYXhDb21wdXRlV29ya2dyb3VwU3Rv
cmFnZVNpemUsCisgICAgICAgICAgICAqbWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3Vw
LAorICAgICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWCwKKyAgICAgICAgICAgICpt
YXhDb21wdXRlV29ya2dyb3VwU2l6ZVksCisgICAgICAgICAgICAqbWF4Q29tcHV0ZVdvcmtncm91
cFNpemVaLAorICAgICAgICAgICAgKm1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uLAor
ICAgICAgICB9IH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmlu
ZGluZ0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVC
aW5kaW5nTGF5b3V0LmgKaW5kZXggMDY5MjY0NGViMDlhZmU1YmQ4NzI5N2RhOWNmMGZiMWNlODIx
ZjhmZS4uYTI5YjljZjJkNzhlOTI1ZDBiYTAzZGM2MjM4YWU3NDlmMzA4MGZmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5n
TGF5b3V0LmgKQEAgLTM0LDYgKzM0LDMzIEBAIHN0cnVjdCBUZXh0dXJlQmluZGluZ0xheW91dCB7
CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlIHNhbXBsZVR5cGU7CiAgICAgUEFM
OjpXZWJHUFU6OlRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CiAgICAgYm9vbCBt
dWx0aXNhbXBsZWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVU
eXBlOworICAgICAgICBlbmNvZGVyIDw8IHZpZXdEaW1lbnNpb247CisgICAgICAgIGVuY29kZXIg
PDwgbXVsdGlzYW1wbGVkOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFRleHR1cmVCaW5kaW5nTGF5b3V0PiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1
cmVTYW1wbGVUeXBlPiBzYW1wbGVUeXBlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVR5cGU7
CisgICAgICAgIGlmICghc2FtcGxlVHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1l
bnNpb24+IHZpZXdEaW1lbnNpb247CisgICAgICAgIGRlY29kZXIgPj4gdmlld0RpbWVuc2lvbjsK
KyAgICAgICAgaWYgKCF2aWV3RGltZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG11bHRpc2FtcGxlZDsKKyAgICAg
ICAgZGVjb2RlciA+PiBtdWx0aXNhbXBsZWQ7CisgICAgICAgIGlmICghbXVsdGlzYW1wbGVkKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKnNhbXBsZVR5cGUpLCBXVEZNb3ZlKCp2aWV3RGltZW5zaW9uKSwgV1RGTW92ZSgqbXVs
dGlzYW1wbGVkKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJl
RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVE
ZXNjcmlwdG9yLmgKaW5kZXggMzFhMDY2ZTY1MDQ1YTVmOTc1ZGIxNGM2ZTdiMTBhNWZmMTdiOTkx
Yi4uMzMyMjE3YmE2MTI1MmMxNDgwN2JlNjQ4ODAyOWUzNWQ4ZWM1MjUyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgK
QEAgLTQxLDYgKzQxLDU3IEBAIHN0cnVjdCBUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmpl
Y3REZXNjcmlwdG9yQmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb24gZGlt
ZW5zaW9uOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0IGZvcm1hdDsKICAgICBQQUw6
OldlYkdQVTo6VGV4dHVyZVVzYWdlRmxhZ3MgdXNhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0
aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBzaXplOworICAgICAgICBlbmNvZGVyIDw8IG1pcExl
dmVsQ291bnQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlQ291bnQ7CisgICAgICAgIGVuY29k
ZXIgPDwgZGltZW5zaW9uOworICAgICAgICBlbmNvZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5j
b2RlciA8PCB1c2FnZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBv
YmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbnQzRD4gc2l6
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBzaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OworICAgICAgICBkZWNvZGVy
ID4+IG1pcExldmVsQ291bnQ7CisgICAgICAgIGlmICghbWlwTGV2ZWxDb3VudCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6U2l6ZTMyPiBzYW1wbGVDb3VudDsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVDb3Vu
dDsKKyAgICAgICAgaWYgKCFzYW1wbGVDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVu
c2lvbj4gZGltZW5zaW9uOworICAgICAgICBkZWNvZGVyID4+IGRpbWVuc2lvbjsKKyAgICAgICAg
aWYgKCFkaW1lbnNpb24pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKKyAg
ICAgICAgZGVjb2RlciA+PiBmb3JtYXQ7CisgICAgICAgIGlmICghZm9ybWF0KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpUZXh0dXJlVXNhZ2VGbGFncz4gdXNhZ2U7CisgICAgICAgIGRlY29kZXIgPj4gdXNhZ2U7
CisgICAgICAgIGlmICghdXNhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb2JqZWN0RGVzY3JpcHRvckJhc2UpLCBXVEZN
b3ZlKCpzaXplKSwgV1RGTW92ZSgqbWlwTGV2ZWxDb3VudCksIFdURk1vdmUoKnNhbXBsZUNvdW50
KSwgV1RGTW92ZSgqZGltZW5zaW9uKSwgV1RGTW92ZSgqZm9ybWF0KSwgV1RGTW92ZSgqdXNhZ2Up
IH0gfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3Jp
cHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVz
Y3JpcHRvci5oCmluZGV4IGZmYTU2ZTUzYmJhMDkyMDlhYmJkNWYxZTQ5YzI2YWRjMjNlNTc0ZWEu
LmE4MTc0MzU1ZTFkNjlmMzM2ODI5ZjY0MjNmMDMxMjJlOTlmZTg5YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlw
dG9yLmgKQEAgLTQyLDYgKzQyLDYzIEBAIHN0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3IgOiBw
dWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkludGVnZXJDb29yZGluYXRlPiBtaXBMZXZlbENvdW50OwogICAgIFBBTDo6V2ViR1BVOjpJ
bnRlZ2VyQ29vcmRpbmF0ZSBiYXNlQXJyYXlMYXllcjsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4gYXJyYXlMYXllckNvdW50OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgZm9ybWF0OworICAgICAgICBlbmNv
ZGVyIDw8IGRpbWVuc2lvbjsKKyAgICAgICAgZW5jb2RlciA8PCBhc3BlY3Q7CisgICAgICAgIGVu
Y29kZXIgPDwgYmFzZU1pcExldmVsOworICAgICAgICBlbmNvZGVyIDw8IG1pcExldmVsQ291bnQ7
CisgICAgICAgIGVuY29kZXIgPDwgYmFzZUFycmF5TGF5ZXI7CisgICAgICAgIGVuY29kZXIgPDwg
YXJyYXlMYXllckNvdW50OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JC
YXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNj
cmlwdG9yQmFzZTsKKyAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0Pj4gZm9ybWF0OworICAgICAgICBkZWNv
ZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYgKCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb24+PiBkaW1lbnNpb247CisgICAgICAgIGRlY29k
ZXIgPj4gZGltZW5zaW9uOworICAgICAgICBpZiAoIWRpbWVuc2lvbikKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
VGV4dHVyZUFzcGVjdD4gYXNwZWN0OworICAgICAgICBkZWNvZGVyID4+IGFzcGVjdDsKKyAgICAg
ICAgaWYgKCFhc3BlY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiBiYXNlTWlw
TGV2ZWw7CisgICAgICAgIGRlY29kZXIgPj4gYmFzZU1pcExldmVsOworICAgICAgICBpZiAoIWJh
c2VNaXBMZXZlbCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0
ZT4+IG1pcExldmVsQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4gbWlwTGV2ZWxDb3VudDsKKyAg
ICAgICAgaWYgKCFtaXBMZXZlbENvdW50KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0
ZT4gYmFzZUFycmF5TGF5ZXI7CisgICAgICAgIGRlY29kZXIgPj4gYmFzZUFycmF5TGF5ZXI7Cisg
ICAgICAgIGlmICghYmFzZUFycmF5TGF5ZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
SW50ZWdlckNvb3JkaW5hdGU+PiBhcnJheUxheWVyQ291bnQ7CisgICAgICAgIGRlY29kZXIgPj4g
YXJyYXlMYXllckNvdW50OworICAgICAgICBpZiAoIWFycmF5TGF5ZXJDb3VudCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpv
YmplY3REZXNjcmlwdG9yQmFzZSksIFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKmRpbWVuc2lv
biksIFdURk1vdmUoKmFzcGVjdCksIFdURk1vdmUoKmJhc2VNaXBMZXZlbCksIFdURk1vdmUoKm1p
cExldmVsQ291bnQpLCBXVEZNb3ZlKCpiYXNlQXJyYXlMYXllciksIFdURk1vdmUoKmFycmF5TGF5
ZXJDb3VudCkgfSB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlv
bkVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVy
cm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDI0ODEwMmRmNmY0MGZhZGFmOGFhZjA2MTljNTgyMTQ1YTU5NmYx
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVW
YWxpZGF0aW9uRXJyb3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKKworc3RydWN0IFZhbGlkYXRpb25FcnJvciB7CisgICAgU3RyaW5nIG1lc3Nh
Z2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBtZXNzYWdlOworICAgIH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZhbGlk
YXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICAgICAgZGVjb2RlciA+PiBtZXNzYWdlOwor
ICAgICAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbWVzc2FnZSkgfSB9OworICAgIH0KK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmgKaW5kZXggYTFiNTNjOTdjNzliNTc5
M2M5N2U2MWZiM2FhN2JkNjNiZTM2OWE3My4uZjkzZmJjZDYyYzEyODkwNzNjNGE5NjcxZmIyYjY2
MDZkZDBkZDM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVZlcnRleEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVWZXJ0ZXhBdHRyaWJ1dGUuaApAQCAtMzUsNiArMzUsMzMgQEAgc3RydWN0IFZlcnRleEF0dHJp
YnV0ZSB7CiAgICAgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQ7CiAKICAgICBQQUw6OldlYkdQ
VTo6SW5kZXgzMiBzaGFkZXJMb2NhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IGZvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBvZmZzZXQ7CisgICAgICAgIGVuY29k
ZXIgPDwgc2hhZGVyTG9jYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVydGV4QXR0cmlidXRlPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRl
eEZvcm1hdD4gZm9ybWF0OworICAgICAgICBkZWNvZGVyID4+IGZvcm1hdDsKKyAgICAgICAgaWYg
KCFmb3JtYXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gb2Zmc2V0OworICAgICAgICBkZWNvZGVy
ID4+IG9mZnNldDsKKyAgICAgICAgaWYgKCFvZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkluZGV4MzI+
IHNoYWRlckxvY2F0aW9uOworICAgICAgICBkZWNvZGVyID4+IHNoYWRlckxvY2F0aW9uOworICAg
ICAgICBpZiAoIXNoYWRlckxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmZvcm1hdCksIFdURk1vdmUoKm9mZnNl
dCksIFdURk1vdmUoKnNoYWRlckxvY2F0aW9uKSB9IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaAppbmRleCAwMzc3NzRiMWI3MTg5ZTM2NWU4
MjMwYjNmYjE2MjgzYzY4MDcxNDZiLi4yMzEwMmRjZGIzNDQyNGI3YTgxYjVkZjIyMmZkY2QwNWQw
MjM1OGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVy
dGV4QnVmZmVyTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVZlcnRleEJ1ZmZlckxheW91dC5oCkBAIC0zNiw2ICszNiwzMyBAQCBzdHJ1Y3QgVmVydGV4QnVm
ZmVyTGF5b3V0IHsKICAgICBQQUw6OldlYkdQVTo6U2l6ZTY0IGFycmF5U3RyaWRlOwogICAgIFBB
TDo6V2ViR1BVOjpWZXJ0ZXhTdGVwTW9kZSBzdGVwTW9kZTsKICAgICBWZWN0b3I8VmVydGV4QXR0
cmlidXRlPiBhdHRyaWJ1dGVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
YXJyYXlTdHJpZGU7CisgICAgICAgIGVuY29kZXIgPDwgc3RlcE1vZGU7CisgICAgICAgIGVuY29k
ZXIgPDwgYXR0cmlidXRlczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxWZXJ0ZXhCdWZmZXJMYXlvdXQ+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0
PiBhcnJheVN0cmlkZTsKKyAgICAgICAgZGVjb2RlciA+PiBhcnJheVN0cmlkZTsKKyAgICAgICAg
aWYgKCFhcnJheVN0cmlkZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4U3RlcE1vZGU+IHN0ZXBNb2Rl
OworICAgICAgICBkZWNvZGVyID4+IHN0ZXBNb2RlOworICAgICAgICBpZiAoIXN0ZXBNb2RlKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxWZXJ0ZXhBdHRyaWJ1dGU+PiBhdHRyaWJ1dGVzOworICAgICAgICBkZWNvZGVyID4+
IGF0dHJpYnV0ZXM7CisgICAgICAgIGlmICghYXR0cmlidXRlcykKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCphcnJheVN0cmlk
ZSksIFdURk1vdmUoKnN0ZXBNb2RlKSwgV1RGTW92ZSgqYXR0cmlidXRlcykgfSB9OworICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDg0MjQ3MTNkZGNkNDk4ZjZi
NjAxYzQwODJjNzE5N2UxZGJlMmJiNTkuLjQ2ZmY4Yzc1NDNlYzAyYWEyMWQ2ZGVkN2FkOWUxZjE0
ODIwMTFlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVW
ZXJ0ZXhTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0
ZXhTdGF0ZS5oCkBAIC0zNCw2ICszNCwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewog
CiBzdHJ1Y3QgVmVydGV4U3RhdGUgOiBwdWJsaWMgUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgIFZl
Y3RvcjxzdGQ6Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZlcnM7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFi
bGVTdGFnZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXJzOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlcnRleFN0
YXRlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8UHJvZ3JhbW1hYmxlU3RhZ2U+IHByb2dyYW1tYWJsZVN0YWdlOworICAgICAgICBkZWNvZGVy
ID4+IHByb2dyYW1tYWJsZVN0YWdlOworICAgICAgICBpZiAoIXByb2dyYW1tYWJsZVN0YWdlKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFZlcnRleEJ1ZmZlckxheW91dD4+PiBidWZmZXJzOworICAg
ICAgICBkZWNvZGVyID4+IGJ1ZmZlcnM7CisgICAgICAgIGlmICghYnVmZmVycykKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpw
cm9ncmFtbWFibGVTdGFnZSksIFdURk1vdmUoKmJ1ZmZlcnMpIH0gfTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNjc2ZGFkZGFjODgz
MTk2YzZhMzQ0YTlmYjFhNmQ0Y2Q0MWFmOGNiYi4uOTFkMWVhYjg5MDUxODRmOGUwMjEzZDM5YWU4
ZGRiNTQyYzNjOGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMSw2ICszMSwyOSBAQCBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRSZW5k
ZXJpbmdSZXNvdXJjZXNSZXF1ZXN0LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9TY29wZWRXZWJH
TFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVBZGFwdGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmlu
ZEdyb3VwLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQmluZEdyb3VwTGF5
b3V0LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNwcAorR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHAKK0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUNvbW1hbmRFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcAorR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlR1BVLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUGlwZWxpbmVMYXlv
dXQuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWVyeVNldC5jcHAKK0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmNwcAorR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVJlbmRlclBhc3NFbmNvZGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVTYW1wbGVyLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hh
ZGVyTW9kdWxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZS5j
cHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3LmNwcAorR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC03NjAsMyArNzgzLDI2IEBAIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVt
TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorCitS
ZW1vdGVBZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJl
Y2VpdmVyLmNwcAorUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVt
b3RlQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tbWFuZEJ1ZmZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKK1JlbW90ZUNvbW1hbmRFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVt
b3RlQ29tcHV0ZVBhc3NFbmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQ29tcHV0ZVBp
cGVsaW5lTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlRGV2aWNlTWVzc2FnZVJlY2VpdmVyLmNw
cAorUmVtb3RlRXh0ZXJuYWxUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlR1BVTWVz
c2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUGlwZWxpbmVMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3Bw
CitSZW1vdGVRdWVyeVNldE1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVF1ZXVlTWVzc2FnZVJl
Y2VpdmVyLmNwcAorUmVtb3RlUmVuZGVyQnVuZGxlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3Rl
UmVuZGVyQnVuZGxlRW5jb2Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVJlbmRlclBhc3NF
bmNvZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlUmVuZGVyUGlwZWxpbmVNZXNzYWdlUmVj
ZWl2ZXIuY3BwCitSZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlU2hhZGVy
TW9kdWxlTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggODYwOGQyYjE3MGJiYjVk
M2Q2N2YzMDc3YWE4NGJlNzEwOWVlM2I1Ny4uYmQ5NzJhMmJlYzI1YmUyNjdmOTU4MWJkMGFlYzIw
ZmFlZGY2YjY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC00LDYgKzQsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5p
ZmllZFNvdXJjZTEwLW1tLm1tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMDAuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTAyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLW1t
Lm1tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5tbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
N2RhNjU3NGY4ZDY0Mzg0M2Q5MDQyZDMxNDQ2NTM2OWRjMTg1OGQ3Yi4uNmVmZWNiY2VlNDY1OTJl
NzU4ZTBlODhjZjZlOTE4MWNlOTI5OTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODAsNiArMzgwLDkgQEAKIAkJMUMwQTE5NUMx
QzkxNkUxQjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlTY3JpcHRTb3VyY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMEExOTVC
MUM5MTZFMUIwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5U2NyaXB0U291cmNl
LmggKi87IH07CiAJCTFDMjA5MzYwMjIzMThDQjAwMDAyNkEzOSAvKiBOU0F0dHJpYnV0ZWRTdHJp
bmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjA5
MzVFMjIzMThDQjAwMDAyNkEzOSAvKiBOU0F0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTFDMjE4NDAyMjIzMzg3MjgwMEJB
QzcwMCAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzIxODQwMTIyMzM4NzI4MDBCQUM3MDAgLyogTlNB
dHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTFDNTY1NTdGMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291
cmNlMTAxLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDNTY1NTdDMjc0NUM1QTAwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCAqLzsgfTsK
KwkJMUM1NjU1ODAyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM1NjU1N0QyNzQ1QzVB
MTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwICovOyB9OworCQkxQzU2NTU4MTI3NDVD
NUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzU2NTU3RTI3NDVDNUExMDA2MzAwQUYgLyogVW5p
ZmllZFNvdXJjZTEwMy5jcHAgKi87IH07CiAJCTFDODkxRDY2MTlCMTI0RkYwMEJBNzlERCAvKiBX
ZWJJbnNwZWN0b3JVSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUM4OTFENjMxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggKi87IH07
CiAJCTFDOEUyODIwMTI3NUQxNTQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUyODFFMTI3NUQxNTQwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3IuaCAqLzsgfTsKIAkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQw
IC8qIFdlYkluc3BlY3RvclVJUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDOEUyODMyMTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JV
SVByb3h5LmggKi87IH07CkBAIC0yODc5LDYgKzI4ODIsOSBAQAogCQkxQzIwOTM1RTIyMzE4Q0Iw
MDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TQXR0cmli
dXRlZFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIwOTM1RjIyMzE4
Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTlNBdHRyaWJ1dGVkU3RyaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzIxODQwMTIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdQcml2YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNTY1NTdDMjc0NUM1QTAwMDYzMDBB
RiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3Vy
Y2UxMDEuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2Vz
L1VuaWZpZWRTb3VyY2UxMDEuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJMUM1NjU1N0QyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwMi5jcHA7IHBhdGggPSAiRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMi5jcHAiOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQzU2NTU3RTI3NDVDNUExMDA2MzAw
QUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291
cmNlMTAzLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNl
cy9VbmlmaWVkU291cmNlMTAzLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTFDNzM5RTg1MjM0N0JDRjYwMEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBDb3JlVGV4dEhlbHBlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDNzM5RTg3MjM0N0JEMEYwMEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ29yZVRleHRIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDNzdDMTk1MTI4OEE4NzIwMDZBNzQyRiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkluc3BlY3RvclVJUHJveHku
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODk1LDYgKzI5MDEs
ODAgQEAKIAkJMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNw
ZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkxQzhFMkEzMjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yTWVz
c2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUM4RTJEQUQxMjc4
QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclVJTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yVUlNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDFEMjc0NDZBMDMwMDJDQ0I3OCAvKiBSZW1vdGVHUFUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwMUUyNzQ0NkEwMzAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdEhlYXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR1BVT2JqZWN0SGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAxRjI3NDQ2QTAzMDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlUXVlcnlTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwMjAyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVSZW5kZXJCdW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwMjEyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZVF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwMjIyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyMzI3NDQ2QTA1MDAyQ0NCNzggLyogUmVtb3RlU2hh
ZGVyTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDI0Mjc0NDZBMDUwMDJDQ0I3OCAv
KiBXZWJHUFVPYmplY3RIZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9iamVjdEhl
YXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAyNTI3NDQ2QTA2MDAy
Q0NCNzggLyogUmVtb3RlVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDI2Mjc0NDZBMDYwMDJDQ0I3OCAv
KiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVS
ZW5kZXJQYXNzRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MDI3Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzAyODI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlU2FtcGxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwMjkyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5l
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRlclBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMDJBMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5h
bFRleHR1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMkIyNzQ0NkEwNzAwMkNDQjc4
IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDJDMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
MkQyNzQ0NkEwNzAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDJFMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzAyRjI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlRGV2aWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZURldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDMwMjc0NDZBMDgwMDJDQ0I3OCAvKiBSZW1vdGVRdWV1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzMTI3
NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlUGlwZWxpbmVMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzAzMjI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlRXh0ZXJuYWxUZXh0dXJlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUV4dGVybmFsVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzAzMzI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlw
ZWxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzNDI3NDQ2QTA5MDAyQ0NCNzggLyog
UmVtb3RlU2hhZGVyTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNoYWRlck1vZHVsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzNTI3NDQ2QTA5MDAyQ0NCNzgg
LyogUmVtb3RlVGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVUZXh0dXJlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzYyNzQ0NkEwOTAwMkNDQjc4
IC8qIFJlbW90ZVRleHR1cmVWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVRleHR1
cmVWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzcyNzQ0NkEw
OTAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVEZXZpY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzgyNzQ0NkEwOTAwMkNDQjc4
IC8qIFJlbW90ZUdQVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVHUFUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwMzkyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRl
ckJ1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZW5kZXJCdW5kbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzQTI3NDQ2QTA5MDAyQ0NCNzggLyog
UmVtb3RlUXVlcnlTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUXVlcnlTZXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzAzQjI3NDQ2QTBBMDAyQ0NCNzgg
LyogUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNv
bXB1dGVQaXBlbGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDND
Mjc0NDZBMEEwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGlwZWxpbmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQ29tcHV0ZVBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDREMjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMDRFMjc0NDZDQjcwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQnVmZmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwNEYyNzQ0NkNCODAwMkNDQjc4IC8qIFJl
bW90ZUFkYXB0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQWRh
cHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1MDI3NDQ2Q0I4MDAy
Q0NCNzggLyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVDb21tYW5kQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwNTEyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExh
eW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVCaW5k
R3JvdXBMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1MjI3
NDQ2Q0I4MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUJpbmRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMDUzMjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBM
YXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQmluZEdyb3Vw
TGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU0Mjc0NDZDQjkw
MDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlQmluZEdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMDU1Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDb21tYW5kRW5jb2Rlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA1NjI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3Rl
Q29tbWFuZEVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQ29tbWFuZEVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzA1NzI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEJ1ZmZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDb21tYW5kQnVmZmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDU4Mjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1vdGVD
b21wdXRlUGFzc0VuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwNTkyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQWRhcHRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDVBMjc0NDZDQkEwMDJDQ0I3OCAvKiBSZW1v
dGVDb21wdXRlUGFzc0VuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDc5Mjc0NEExQ0MwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVk
TGltaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVN1cHBvcnRlZExpbWl0cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2ViR1BV
Q29tcGlsYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbXBpbGF0aW9uTWVz
c2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA3QzI3NDRCOTkxMDAy
Q0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDdE
Mjc0NEI5QjcwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViR1BVVmFsaWRhdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDdFMjc0NEI5REIwMDJDQ0I3OCAvKiBXZWJHUFVFcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJHUFVFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4MDI3
NDRCRDk3MDAyQ0NCNzggLyogUmVtb3RlUXVldWUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUXVl
dWUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDgxMjc0
NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVSZW5kZXJQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwODIyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4
dHVyZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDgzMjc0NEJEOTgwMDJDQ0I3OCAv
KiBSZW1vdGVSZW5kZXJCdW5kbGUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxl
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NDI3NDRC
RDk4MDAyQ0NCNzggLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0Lm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
bW90ZUJpbmRHcm91cExheW91dC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwODUyNzQ0QkQ5ODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0Lm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlbW90ZVBpcGVsaW5lTGF5b3V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4NjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3Rl
UmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg3Mjc0NEJEOTkw
MDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVRleHR1cmUu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDg4Mjc0NEJE
OTkwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlVmlldy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVU
ZXh0dXJlVmlldy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwODkyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwOEEyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRs
ZUVuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOEIyNzQ0QkQ5OTAw
MkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVF1ZXJ5U2V0
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA4QzI3NDRC
RDlBMDAyQ0NCNzggLyogUmVtb3RlU2hhZGVyTW9kdWxlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZVNoYWRlck1vZHVsZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwOEQyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlU2FtcGxlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwOEUyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQaXBlbGluZS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDhGMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVE
ZXZpY2UubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5MDI3NDRCRDlBMDAyQ0NCNzggLyogUmVtb3Rl
QnVmZmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUJ1ZmZlci5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90
ZUFkYXB0ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQWRhcHRlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTIyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJl
bW90ZUJpbmRHcm91cC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3
OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29t
cHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA5NDI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlR1BVLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUdQVS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwOTUyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQzlFQkE1QjIwODdFNzRFMDAwNTQ0MjkgLyogTmF0aXZlV2ViTW91c2VF
dmVudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5hdGl2
ZVdlYk1vdXNlRXZlbnRJT1MubW07IHBhdGggPSBpb3MvTmF0aXZlV2ViTW91c2VFdmVudElPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBOEI5MzUxMjdDNzc0RTAwNTc2QzJC
IC8qIFdlYkluc3BlY3RvclVJUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0E4Qjk0MzEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC03MTg1LDYgKzcyNjUsODEg
QEAKIAkJCXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJMUM5OEMwMUMyNzQ0NjkyNjAwMkNDQjc4IC8qIFdlYkdQVSAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM5OEMwNTkyNzQ0NkNCQTAwMkNDQjc4
IC8qIFJlbW90ZUFkYXB0ZXIuY3BwICovLAorCQkJCTFDOThDMDRGMjc0NDZDQjgwMDJDQ0I3OCAv
KiBSZW1vdGVBZGFwdGVyLmggKi8sCisJCQkJMUM5OEMwOTEyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJl
bW90ZUFkYXB0ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTIyNzQ0NkNCODAwMkNDQjc4
IC8qIFJlbW90ZUJpbmRHcm91cC5jcHAgKi8sCisJCQkJMUM5OEMwNTQyNzQ0NkNCOTAwMkNDQjc4
IC8qIFJlbW90ZUJpbmRHcm91cC5oICovLAorCQkJCTFDOThDMDkyMjc0NEJEOUIwMDJDQ0I3OCAv
KiBSZW1vdGVCaW5kR3JvdXAubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTEyNzQ0NkNCODAw
MkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5jcHAgKi8sCisJCQkJMUM5OEMwNTMyNzQ0
NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUJpbmRHcm91cExheW91dC5oICovLAorCQkJCTFDOThDMDg0
Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXQubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwNEUyNzQ0NkNCNzAwMkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5jcHAgKi8sCisJ
CQkJMUM5OEMwNEQyNzQ0NkNCNzAwMkNDQjc4IC8qIFJlbW90ZUJ1ZmZlci5oICovLAorCQkJCTFD
OThDMDkwMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVCdWZmZXIubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMUM5OEMwNTAyNzQ0NkNCODAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIuY3BwICov
LAorCQkJCTFDOThDMDU3Mjc0NDZDQjkwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kQnVmZmVyLmgg
Ki8sCisJCQkJMUM5OEMwODkyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXIu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTYyNzQ0NkNCOTAwMkNDQjc4IC8qIFJlbW90ZUNv
bW1hbmRFbmNvZGVyLmNwcCAqLywKKwkJCQkxQzk4QzA1NTI3NDQ2Q0I5MDAyQ0NCNzggLyogUmVt
b3RlQ29tbWFuZEVuY29kZXIuaCAqLywKKwkJCQkxQzk4QzA5NTI3NDRCRDlCMDAyQ0NCNzggLyog
UmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwNTgyNzQ0NkNC
QTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAgKi8sCisJCQkJMUM5OEMw
NUEyNzQ0NkNCQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5oICovLAorCQkJ
CTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwM0IyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90ZUNvbXB1
dGVQaXBlbGluZS5jcHAgKi8sCisJCQkJMUM5OEMwM0MyNzQ0NkEwQTAwMkNDQjc4IC8qIFJlbW90
ZUNvbXB1dGVQaXBlbGluZS5oICovLAorCQkJCTFDOThDMDhFMjc0NEJEOUEwMDJDQ0I3OCAvKiBS
ZW1vdGVDb21wdXRlUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkYyNzQ0NkEw
ODAwMkNDQjc4IC8qIFJlbW90ZURldmljZS5jcHAgKi8sCisJCQkJMUM5OEMwMzcyNzQ0NkEwOTAw
MkNDQjc4IC8qIFJlbW90ZURldmljZS5oICovLAorCQkJCTFDOThDMDhGMjc0NEJEOUEwMDJDQ0I3
OCAvKiBSZW1vdGVEZXZpY2UubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkEyNzQ0NkEwNzAw
MkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5jcHAgKi8sCisJCQkJMUM5OEMwMzIyNzQ0
NkEwODAwMkNDQjc4IC8qIFJlbW90ZUV4dGVybmFsVGV4dHVyZS5oICovLAorCQkJCTFDOThDMDgy
Mjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVFeHRlcm5hbFRleHR1cmUubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwMUQyNzQ0NkEwMzAwMkNDQjc4IC8qIFJlbW90ZUdQVS5jcHAgKi8sCisJCQkJ
MUM5OEMwMzgyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZUdQVS5oICovLAorCQkJCTFDOThDMDk0
Mjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVHUFUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMw
MzEyNzQ0NkEwODAwMkNDQjc4IC8qIFJlbW90ZVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKKwkJCQkx
Qzk4QzAyRDI3NDQ2QTA3MDAyQ0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQuaCAqLywKKwkJ
CQkxQzk4QzA4NTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUGlwZWxpbmVMYXlvdXQubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwM0EyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVF1ZXJ5U2V0
LmNwcCAqLywKKwkJCQkxQzk4QzAxRjI3NDQ2QTAzMDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQu
aCAqLywKKwkJCQkxQzk4QzA4QjI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlUXVlcnlTZXQubWVz
c2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjEyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVF1ZXVl
LmNwcCAqLywKKwkJCQkxQzk4QzAzMDI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlUXVldWUuaCAq
LywKKwkJCQkxQzk4QzA4MDI3NDRCRDk3MDAyQ0NCNzggLyogUmVtb3RlUXVldWUubWVzc2FnZXMu
aW4gKi8sCisJCQkJMUM5OEMwMzkyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRs
ZS5jcHAgKi8sCisJCQkJMUM5OEMwMjAyNzQ0NkEwNDAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1
bmRsZS5oICovLAorCQkJCTFDOThDMDgzMjc0NEJEOTgwMDJDQ0I3OCAvKiBSZW1vdGVSZW5kZXJC
dW5kbGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMkIyNzQ0NkEwNzAwMkNDQjc4IC8qIFJl
bW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwICovLAorCQkJCTFDOThDMDIyMjc0NDZBMDQwMDJD
Q0I3OCAvKiBSZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmggKi8sCisJCQkJMUM5OEMwOEEyNzQ0
QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIubWVzc2FnZXMuaW4gKi8s
CisJCQkJMUM5OEMwMjYyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVJlbmRlclBhc3NFbmNvZGVy
LmNwcCAqLywKKwkJCQkxQzk4QzAyNzI3NDQ2QTA2MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGFz
c0VuY29kZXIuaCAqLywKKwkJCQkxQzk4QzA4MTI3NDRCRDk4MDAyQ0NCNzggLyogUmVtb3RlUmVu
ZGVyUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMzMyNzQ0NkEwODAwMkND
Qjc4IC8qIFJlbW90ZVJlbmRlclBpcGVsaW5lLmNwcCAqLywKKwkJCQkxQzk4QzAyOTI3NDQ2QTA3
MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUuaCAqLywKKwkJCQkxQzk4QzA4NjI3NDRC
RDk5MDAyQ0NCNzggLyogUmVtb3RlUmVuZGVyUGlwZWxpbmUubWVzc2FnZXMuaW4gKi8sCisJCQkJ
MUM5OEMwMjgyNzQ0NkEwNjAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIuY3BwICovLAorCQkJCTFD
OThDMDJDMjc0NDZBMDcwMDJDQ0I3OCAvKiBSZW1vdGVTYW1wbGVyLmggKi8sCisJCQkJMUM5OEMw
OEQyNzQ0QkQ5QTAwMkNDQjc4IC8qIFJlbW90ZVNhbXBsZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJ
MUM5OEMwMjMyNzQ0NkEwNTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5jcHAgKi8sCisJ
CQkJMUM5OEMwMzQyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVNoYWRlck1vZHVsZS5oICovLAor
CQkJCTFDOThDMDhDMjc0NEJEOUEwMDJDQ0I3OCAvKiBSZW1vdGVTaGFkZXJNb2R1bGUubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwMzUyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUu
Y3BwICovLAorCQkJCTFDOThDMDI1Mjc0NDZBMDYwMDJDQ0I3OCAvKiBSZW1vdGVUZXh0dXJlLmgg
Ki8sCisJCQkJMUM5OEMwODcyNzQ0QkQ5OTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmUubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMUM5OEMwMzYyNzQ0NkEwOTAwMkNDQjc4IC8qIFJlbW90ZVRleHR1cmVW
aWV3LmNwcCAqLywKKwkJCQkxQzk4QzAyRTI3NDQ2QTA4MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVy
ZVZpZXcuaCAqLywKKwkJCQkxQzk4QzA4ODI3NDRCRDk5MDAyQ0NCNzggLyogUmVtb3RlVGV4dHVy
ZVZpZXcubWVzc2FnZXMuaW4gKi8sCisJCQkJMUM5OEMwMjQyNzQ0NkEwNTAwMkNDQjc4IC8qIFdl
YkdQVU9iamVjdEhlYXAuY3BwICovLAorCQkJCTFDOThDMDFFMjc0NDZBMDMwMDJDQ0I3OCAvKiBX
ZWJHUFVPYmplY3RIZWFwLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFdlYkdQVTsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFDQjc0NjE5Mjc0MzZERTMwMEYxOTg3NCAvKiBX
ZWJHUFUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzI1
NSw2ICs3NDEwLDcgQEAKIAkJCQkxQ0I3NDY3OTI3NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BVQ29s
b3JUYXJnZXRTdGF0ZS5oICovLAogCQkJCTFDQjc0NjgzMjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJH
UFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NjkyMjc0MzlDQjkwMEYx
OTg3NCAvKiBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA3
QjI3NDRCNDE2MDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJ
MUNCNzQ2OTcyNzQzOUNCQTAwRjE5ODc0IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5o
ICovLAogCQkJCTFDQjc0Njg5Mjc0MzlDQjYwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlcy5oICovLAogCQkJCTFDQjc0Njc2Mjc0MzlDQjEwMEYxOTg3NCAvKiBXZWJH
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCkBAIC03MjYyLDYgKzc0MTgsNyBAQAog
CQkJCTFDQjc0NjQ3Mjc0MzdBN0YwMEYxOTg3NCAvKiBXZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29u
dGV4dC5oICovLAogCQkJCTFDQjc0NjcxMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVEZXB0aFN0
ZW5jaWxTdGF0ZS5oICovLAogCQkJCTFDQjc0Njg1Mjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVE
ZXZpY2VEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwN0UyNzQ0QjlEQjAwMkNDQjc4IC8qIFdl
YkdQVUVycm9yLmggKi8sCiAJCQkJMUNCNzQ2ODcyNzQzOUNCNjAwRjE5ODc0IC8qIFdlYkdQVUV4
dGVudDNELmggKi8sCiAJCQkJMUNCNzQ2NkYyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVUV4dGVy
bmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywKIAkJCQkxQ0I3NDY4NjI3NDM5Q0I1MDBGMTk4
NzQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oICovLApAQCAtNzI3Niw2ICs3
NDMzLDcgQEAKIAkJCQkxQ0I3NDY2QzI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaCAqLywKIAkJCQkxQ0I3NDY3MDI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BV
T3JpZ2luMkQuaCAqLywKIAkJCQkxQ0I3NDZBMDI3NDM5Q0JEMDBGMTk4NzQgLyogV2ViR1BVT3Jp
Z2luM0QuaCAqLywKKwkJCQkxQzk4QzA3QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZN
ZW1vcnlFcnJvci5oICovLAogCQkJCTFDQjc0Njk0Mjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJHUFVQ
aXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJMUNCNzQ2OTgyNzQzOUNCQjAwRjE5ODc0
IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NjZEMjc0
MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVQcmltaXRpdmVTdGF0ZS5oICovLApAQCAtNzI5NSw5ICs3
NDUzLDEyIEBACiAJCQkJMUNCNzQ2NkIyNzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDY3MzI3NDM5Q0IxMDBGMTk4NzQgLyogV2Vi
R1BVU3RlbmNpbEZhY2VTdGF0ZS5oICovLAogCQkJCTFDQjc0Njk2Mjc0MzlDQkEwMEYxOTg3NCAv
KiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA3OTI3
NDRBMUNDMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCAqLywKKwkJCQkxQzk4
QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8sCiAJCQkJ
MUNCNzQ2NzUyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0Lmgg
Ki8sCiAJCQkJMUNCNzQ2ODEyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlw
dG9yLmggKi8sCiAJCQkJMUNCNzQ2ODAyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVW
aWV3RGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3OCAvKiBXZWJH
UFVWYWxpZGF0aW9uRXJyb3IuaCAqLywKIAkJCQkxQ0I3NDY3MjI3NDM5Q0IwMDBGMTk4NzQgLyog
V2ViR1BVVmVydGV4QXR0cmlidXRlLmggKi8sCiAJCQkJMUNCNzQ2OEYyNzQzOUNCODAwRjE5ODc0
IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oICovLAogCQkJCTFDQjc0NjlBMjc0MzlDQkIw
MEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5oICovLApAQCAtNzY4Niw2ICs3ODQ3LDkgQEAK
IAkJCQkyRDg1MDhDNDIxMkUzM0VDMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk4LmNwcCAqLywK
IAkJCQkyRDg1MDhCMTIxMkUzM0U5MDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk5LmNwcCAqLywK
IAkJCQkyRDg1MDhCRTIxMkUzM0VCMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTEwMC5jcHAgKi8s
CisJCQkJMUM1NjU1N0MyNzQ1QzVBMDAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDEuY3BwICov
LAorCQkJCTFDNTY1NTdEMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCAq
LywKKwkJCQkxQzU2NTU3RTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9ICJ1bmlmaWVkLXNvdXJjZXMiOwogCQkJcGF0aCA9ICJEZXJp
dmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcyI7CkBAIC05MDUxLDYgKzkyMTUsNyBA
QAogCQk1NTA2NDBBMTI0MDcxQTI5MDBBQUUwNDUgLyogZ3JhcGhpY3MgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDOThDMDFDMjc0NDY5MjYwMDJDQ0I3
OCAvKiBXZWJHUFUgKi8sCiAJCQkJRjQwOTRDQkMyNTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlM
aXN0UmVhZGVySGFuZGxlLmNwcCAqLywKIAkJCQlGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyog
RGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaCAqLywKIAkJCQk3QjE2MTkxMzI3MTlBRTc2MDBDNDBF
QUMgLyogR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmggKi8sCkBAIC0xNDcxMiw2ICsxNDg3
Nyw5IEBACiAJCQkJMkQ4NTA4RDgyMTJFMzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDg1MDhDNTIxMkUzM0VEMDAwRUY0NkMgLyogVW5pZmll
ZFNvdXJjZTk5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODUwOEQyMjEyRTMzRUQwMDBFRjQ2
QyAvKiBVbmlmaWVkU291cmNlMTAwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDNTY1NTdGMjc0
NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTFDNTY1NTgwMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTFDNTY1NTgxMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzOEExRkMwMjNBNTUxQkYwMEQyMzc0RiAvKiBVc2Vy
SW50ZXJmYWNlSWRpb20ubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIwRDFFNzMyRTREMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVB
ZGFwdGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcAppbmRleCBmNjM0ODQ2Yjk1NTczZDUzNDZkODZi
OGRiNmRiOWQzNDQzNWQxMTczLi5kYTRiZDExMGJjMzdmYTBhYjIyNTlmNzc4MWYwYWMzOWY3ZmQ0
MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5jcHAKQEAgLTQyLDcgKzQy
LDcgQEAgUmVtb3RlQWRhcHRlclByb3h5Ojp+UmVtb3RlQWRhcHRlclByb3h5KCkKIHsKIH0KIAot
dm9pZCBSZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6
OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFM
OjpXZWJHUFU6OkRldmljZT4pPiYmIGNhbGxiYWNrKQordm9pZCBSZW1vdGVBZGFwdGVyUHJveHk6
OnJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4mJik+JiYg
Y2FsbGJhY2spCiB7CiAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0b3IpOwogICAgIFVOVVNFRF9Q
QVJBTShjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCmluZGV4IDZl
ODU0M2IxMDViOWI1NDliZjY4ZjY4OTAxODYwZTg3YTliYTFmMTUuLjgzM2JiM2VlMzU5ZDFiYjg4
NGJmNzk5ZTk1OWFmZWE1OTQ3Nzg2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94
eS5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJHUFVJZGVudGlmaWVyIGJh
Y2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIHZvaWQgcmVxdWVzdERl
dmljZShjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVl
c3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYpPiYmKSBmaW5hbDsKIAogICAgIERl
cXVlPFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPj4gbV9jYWxs
YmFja3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZURldmljZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZVByb3h5LmNwcAppbmRleCBiY2YzOTNl
OWJhMDM4Y2FiZTc2NzI1MTBjYjQyMWNhNjlhM2I4NGVhLi44MjlmODU1NTQ0ZjI4Zjg0MGZmYzFm
MDBiMWY5NWYxM2IwNGE2Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlclByb3h5LmgiCiAjaW5j
bHVkZSAiUmVtb3RlU2hhZGVyTW9kdWxlUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVUZXh0dXJl
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVQcm94eS5jcHAKaW5kZXgg
M2ZkODU3MzQ3NTRjZGMwZTFjMWQxZjE2YzBhN2ViNTY0NjEwZjAyNy4uZDFmZDM0Mjk1ZTFkYTgx
MThhYzE1YTU4NzcxYTg0ODljNzIyNjU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJl
UHJveHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJSZW1vdGVUZXh0dXJlVmll
d1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCIKIAogbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIApAQCAtNDIsNyArNDMsNyBAQCBSZW1vdGVUZXh0dXJlUHJveHk6On5SZW1v
dGVUZXh0dXJlUHJveHkoKQogewogfQogCi1SZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBS
ZW1vdGVUZXh0dXJlUHJveHk6OmNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxQQUw6
OldlYkdQVTo6VGV4dHVyZVZpZXc+IFJlbW90ZVRleHR1cmVQcm94eTo6Y3JlYXRlVmlldyhjb25z
dCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiBkZXNj
cmlwdG9yKQogewogICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdG9yKTsKICAgICByZXR1cm4gUmVt
b3RlVGV4dHVyZVZpZXdQcm94eTo6Y3JlYXRlKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlVGV4dHVyZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaAppbmRleCA1ZmFkODFiNmJkOTRkZDk0ZWU4
NDRlODA1MjE4NWU3ZmU0OWM4NWUxLi5hMzhjZjM0M2YzOWRlMzU4MWU2ZTRhOTE2MjllOGEyY2U4
OTRhMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVUZXh0dXJlUHJveHkuaApAQCAtNTksNyArNTks
NyBAQCBwcml2YXRlOgogCiAgICAgV2ViR1BVSWRlbnRpZmllciBiYWNraW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CiAKLSAgICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3PiBj
cmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVz
Y3JpcHRvcj4mKSBjb25zdCBmaW5hbDsKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
PiBjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
RGVzY3JpcHRvcj4mKSBmaW5hbDsKIAogICAgIHZvaWQgZGVzdHJveSgpIGZpbmFsOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>