<?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>227253</bug_id>
          
          <creation_ts>2021-06-22 06:14:24 -0700</creation_ts>
          <short_desc>Disable relay for UDP sockets when not needed</short_desc>
          <delta_ts>2021-07-01 13:56:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771657</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-22 06:14:24 -0700</bug_when>
    <thetext>Disable relay for UDP sockets when not needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771658</commentid>
    <comment_count>1</comment_count>
      <attachid>431960</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-22 06:18:43 -0700</bug_when>
    <thetext>Created attachment 431960
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773393</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-29 06:15:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/79912154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774082</commentid>
    <comment_count>3</comment_count>
      <attachid>432683</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-07-01 05:50:52 -0700</bug_when>
    <thetext>Created attachment 432683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774092</commentid>
    <comment_count>4</comment_count>
      <attachid>432685</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-07-01 06:32:36 -0700</bug_when>
    <thetext>Created attachment 432685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774114</commentid>
    <comment_count>5</comment_count>
      <attachid>432695</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-07-01 08:11:05 -0700</bug_when>
    <thetext>Created attachment 432695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774123</commentid>
    <comment_count>6</comment_count>
      <attachid>432697</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-07-01 08:31:35 -0700</bug_when>
    <thetext>Created attachment 432697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774242</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-01 13:56:10 -0700</bug_when>
    <thetext>Committed r279483 (239336@main): &lt;https://commits.webkit.org/239336@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432697.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431960</attachid>
            <date>2021-06-22 06:18:43 -0700</date>
            <delta_ts>2021-07-01 05:50:48 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-227253-20210622151841.patch</filename>
            <type>text/plain</type>
            <size>31185</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU5MzIzOTk2MzNkZTM2
OGJmMDVkNTZiNjc5YmMxZmU4MjhhYzQxYi4uYWEwMDdiYTIzMDk2YTEyMzk2OWVmY2IzYTFlZGI3
OWE0NjM1N2YwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA2LTIyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIHJlbGF5IGZv
ciBVRFAgc29ja2V0cyB3aGVuIG5vdCBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2hv
dWxkRmlsdGVySUNFQ2FuZGlkYXRlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpydGNTb2NrZXRGYWN0
b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaDoKKwogMjAyMS0wNi0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNaWdyYXRlIFdlYlJUQyBVRFAgc29ja2V0IGhh
bmRsaW5nIHRvIE5XIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1OGY4MTQ0MjMwOTU1NDliMzhhNzAxYjUxZWM1
ZmRmOTg5MDdkMDQ4Li40OTQ5M2E1MGVhZDJkOTgwOGRjOTAxYmM2N2E1MzMxZGJmNGQ2MjhhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA2LTIyICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3
aGVuIG5vdCBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2Nr
ZXRDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29u
bmVjdGlvbnM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYTo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNv
Y2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hQ29ubmVjdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2FDb25uZWN0aW9uczo6Y3JlYXRlTldDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFj
dG9yeTo6UlRDU29ja2V0RmFjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rv
cnk6OkNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Byb3ZpZGVy
OjpjcmVhdGVTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2Vi
UlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKwogMjAyMS0wNi0yMiAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNaWdy
YXRlIFdlYlJUQyBVRFAgc29ja2V0IGhhbmRsaW5nIHRvIE5XIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmgKaW5kZXggMzM2OTc2MzllMGJjNTBiNjllODhmOGZjODdjOGNlY2E0NDA3OTc2Ni4uYzAyMzQy
YmZkZDg2NTAxNTU1MjhlMGYxNTk1YzU3NDNhNjIzZmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
CkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxh
dGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgPSAwOwogCiAgICAgdm9pZCBuZXdJQ0VD
YW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQsIHVuc2lnbmVkIHNob3J0IHNkcE1M
aW5lSW5kZXgsIFN0cmluZyYmIHNlcnZlclVSTCk7Ci0gICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmcoKTsKICAgICB2b2lkIGVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwogCiAgICAg
dmlydHVhbCB2b2lkIGFwcGx5Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291cmNlcygpIHsgfQpA
QCAtMTgxLDYgKzE4MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSB7IH0KIAorICAgIGJvb2wgc2hvdWxkRmlsdGVy
SUNFQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRl
czsgfTsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJlZlB0
cjxSVENJY2VDYW5kaWRhdGU+JiYsIFN0cmluZyYmIHVybCk7CiAgICAgdm9pZCBkb25lR2F0aGVy
aW5nQ2FuZGlkYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcAppbmRleCA0N2QxYjI0M2ZjNzhlOWM1ZGEwYmVkMTdjMjlkYzYyOWU1NGY4NTk4Li45MTM5
MzZmMjUzYjM3NzgxNTEyMzVjOWNhZTgyNTBhNGFkYTRhYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBv
aW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcApAQCAtOTQsNyArOTQsMTAgQEAgYm9vbCBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50OjpzZXRDb25maWd1cmF0aW9uKExpYldlYlJUQ1Byb3ZpZGVyJiBj
bGllbnQsIHdlYnJ0YzoKICAgICBpZiAoIW1fYmFja2VuZCkgewogICAgICAgICBpZiAoIW1fcnRj
U29ja2V0RmFjdG9yeSkgewogICAgICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oKm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24oKS5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwotICAgICAgICAgICAgbV9ydGNTb2NrZXRGYWN0b3J5ID0gY2xpZW50
LmNyZWF0ZVNvY2tldEZhY3RvcnkoZG9jdW1lbnQudXNlckFnZW50KGRvY3VtZW50LnVybCgpKSk7
CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9tYWluIHsgZG9jdW1l
bnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSB9OworICAgICAgICAgICAgbV9ydGNTb2NrZXRGYWN0
b3J5ID0gY2xpZW50LmNyZWF0ZVNvY2tldEZhY3RvcnkoZG9jdW1lbnQudXNlckFnZW50KGRvY3Vt
ZW50LnVybCgpKSwgZmlyc3RQYXJ0eURvbWFpbiA9PSBSZWdpc3RyYWJsZURvbWFpbiB7IGRvY3Vt
ZW50LnVybCgpIH0pOworICAgICAgICAgICAgaWYgKCFtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5z
aG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzKCkpCisgICAgICAgICAgICAgICAgbV9ydGNTb2NrZXRG
YWN0b3J5LT5kaXNhYmxlUmVsYXkoKTsKICAgICAgICAgfQogICAgICAgICBtX2JhY2tlbmQgPSBj
bGllbnQuY3JlYXRlUGVlckNvbm5lY3Rpb24oKnRoaXMsIG1fcnRjU29ja2V0RmFjdG9yeS5nZXQo
KSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiAgICAgICAgIHJldHVybiAhIW1fYmFja2VuZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaAppbmRleCAxNzZlN2VjZDgy
NTE1NzZlYTY3YzE0OTkwNzIzOWMzN2M2NGZiMmFhLi4xMWU1Nzg2OGIyNDI5Zjk3MTlmMzcyOWYz
NzBmMTM4MmQ3NmY2YzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2lu
dC5oCkBAIC0xMTksNiArMTE5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdXNwZW5kKCk7CiAg
ICAgdm9pZCByZXN1bWUoKTsKKyAgICBMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2Nr
ZXRGYWN0b3J5KiBydGNTb2NrZXRGYWN0b3J5KCkgeyByZXR1cm4gbV9ydGNTb2NrZXRGYWN0b3J5
LmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgTGliV2ViUlRDTWVkaWFFbmRwb2ludChMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQmLCBMaWJXZWJSVENQcm92aWRlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXgg
Y2JiZTZkNzE2OTY5ODVmZDMwY2IyZTkzOTI3NDkzODJmNzY0OWRkZS4uZGE1ZmMzZmIzYTYxNTAw
MDBhZWM5NDk5MjE4M2JkMmI1ZTgyZDM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0xMDIsNiArMTAyLDEzIEBAIHZv
aWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpyZXN1bWUoKQogICAgIG1fZW5kcG9p
bnQtPnJlc3VtZSgpOwogfQogCit2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisgICAgaWYgKGF1dG8qIGZhY3Rv
cnkgPSBtX2VuZHBvaW50LT5ydGNTb2NrZXRGYWN0b3J5KCkpCisgICAgICAgIGZhY3RvcnktPmRp
c2FibGVSZWxheSgpOworfQorCiBzdGF0aWMgaW5saW5lIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OkJ1bmRsZVBvbGljeSBidW5kbGVQb2xpY3lmcm9tQ29uZmlndXJhdGlvbihjb25z
dCBNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIHsKICAgICBzd2l0
Y2ggKGNvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCmluZGV4IGJmMzA4M2E3ZWE4YTdhNzc5
ZGRjYjc2N2E2Mzk4YmQ0MTUzOGQ0ZjAuLmY5ZDEyMzc2Y2QxOTMzMjE3Y2UxYzIwYmMyOWRkNzUw
ZWQwZmVlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3Vz
cGVuZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBkaXNhYmxl
SUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgZmluYWw7CiAKICAgICBSZWY8TGliV2ViUlRDTWVkaWFF
bmRwb2ludD4gbV9lbmRwb2ludDsKICAgICBib29sIG1faXNMb2NhbERlc2NyaXB0aW9uU2V0IHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMDhhMjk1Njhl
OWE2ZWJiYmFjOWQ4NTVmODIzMWIxNTY2YmI4MmM5My4uMGI4MGVlZjQwN2I2NTlmMDVkMTAzZmFm
YjY2OTM2OWVjNjc2NDUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAg
LTEzOSw4ICsxMzksOSBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgflN1c3BlbmRhYmxlU29j
a2V0RmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoKSB7
IH07CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSB7IH07CisgICAgICAgIHZpcnR1YWwg
dm9pZCBkaXNhYmxlUmVsYXkoKSB7IH07CiAgICAgfTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVl
X3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoU3RyaW5n
JiYgLyogdXNlckFnZW50ICovKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBzdGQ6
OnVuaXF1ZV9wdHI8U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5
KFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLywgYm9vbCAvKiBpc0ZpcnN0UGFydHkgKi8pIHsgcmV0
dXJuIG51bGxwdHI7IH0KIAogcHJvdGVjdGVkOgogICAgIExpYldlYlJUQ1Byb3ZpZGVyKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggZjcyZjJjZmRjZjJjYmQ2MDRiYzRjZDUw
NzkyYjlkN2JmNGE3YTM4YS4uNTEzZGVkYzg4NGM0YTE1YWU3ZDg4MTdmMzk2YzA4NDEzMTE1ZmMx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC0xMzIsMTEgKzEzMiwxMSBAQCB2b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgc3RkOgogICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPExpYldl
YlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0KSwgdHlw
ZSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y3JlYXRlVURQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2Nr
ZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQ
b3J0LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQpCiB7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGxhdGZvcm1VRFBTb2NrZXRzRW5hYmxlZCkgewotICAg
ICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVE
UFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgYWRkcmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9y
dCwgbV9pcGNDb25uZWN0aW9uLmNvcHlSZWYoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8gc29ja2V0
ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwg
KnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQsIG1faXBjQ29ubmVjdGlvbi5j
b3B5UmVmKCksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkKSkgewogICAgICAgICAgICAg
YWRkU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKaW5kZXggNTUxNzE5YzVmYzhlNmQ1M2U3ZGZl
YjQ2YjgyZDY2NGIyOWQxMjY4MS4uMjQ4OGUxOWYyYTE4NTE1Y2VkMTFlMTZmY2RjNjEzMmZlZTI4
YmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBwcml2YXRlOgogICAg
IGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOwogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAotICAgIHZvaWQgY3JlYXRl
VURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOworICAgIHZvaWQgY3Jl
YXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QsIGJvb2wgaXNGaXJz
dFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCk7CiAgICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBTdHJp
bmcmJiB1c2VyQWdlbnQsIGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CiAgICAg
dm9pZCB3cmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2Vz
LmluCmluZGV4IGJmZGRkYTc5OTgzNmE0NTBkOGI1OTkyZDk1MTgyNTE1OGM2MzFjNWIuLjA5NjVi
YWMwNGE5OWZhZGExNGEwYjhmYTZhOTZiZTI5YmYxN2VkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQog
CiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewotICAgIENyZWF0ZVVEUFNvY2tldChX
ZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9v
bCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkKQogICAgIENyZWF0ZVNlcnZlclRD
UFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1p
blBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQogICAgIENyZWF0ZUNsaWVudFRD
UFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBp
bnQgb3B0aW9ucykKICAgICBXcmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYS5oCmluZGV4IDdhNzUxMjliZmRlMmU2N2IxZmIyZmIwMDU4OWU5ZjI1YjA1MTNjNDcuLjBi
OWU1OTJmZWRjMjJkYWYxZjVhOGIzMjgyZjE4ZWJjZThjZTIxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBT
b2NrZXRDb2NvYS5oCkBAIC01OSw5ICs1OSw5IEBAIGNsYXNzIE5ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYUNvbm5lY3Rpb25zOwogY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hIGZpbmFsIDog
cHVibGljIE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQ
cm92aWRlcjo6U29ja2V0PiBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNv
Y2tldD4gY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIs
IE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wg
aXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCk7CiAKLSAgICBOZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JU
Q1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJik7CisgICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlz
UmVsYXlEaXNhYmxlZCk7CiAgICAgfk5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYSgpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1VEUFNvY2tldENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tCmluZGV4IDgwMzllODViZTgyOWZkYTQz
OGFlZWYzOWZkMGRjNTA2MzA2YzUwNjkuLjQzNThiMmY5NDk5YTk0OGM0YTg5YTE2YTQ0ZTE4MTU4
ZjRiMWI4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDTmV0d29y
a01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5XUGFyYW1ldGVy
c1NQSS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU1RVTk1lc3NhZ2VQYXJzaW5nLmg+CiAjaW5jbHVk
ZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNpbmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KQEAgLTQy
LDIwICs0MywyMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgTmV0d29ya1JU
Q1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zPiBjcmVhdGUoV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlk
ZXImIHByb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVz
cywgV1RGTW92ZShjb25uZWN0aW9uKSkpOyB9CisgICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3JlYXRlKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhpZGVudGlm
aWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwgaXNGaXJzdFBhcnR5
LCBpc1JlbGF5RGlzYWJsZWQpKTsgfQogCiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQgc2V0
T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSk7CiAgICAgdm9pZCBzZW5kVG8oY29uc3QgdWlu
dDhfdCosIHNpemVfdCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgcnRjOjpQYWNr
ZXRPcHRpb25zJik7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29u
bmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1By
b3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4m
Jik7CisgICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBpc0ZpcnN0UGFydHks
IGJvb2wgaXNSZWxheURpc2FibGVkKTsKIAogICAgIFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+
IGNyZWF0ZU5XQ29ubmVjdGlvbihjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsKICAgICB2b2lk
IHNldHVwTldDb25uZWN0aW9uKG53X2Nvbm5lY3Rpb25fdCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJik7CiAKICAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgYm9vbCBt
X3Nob3VsZEJ5cGFzc1JlbGF5IHsgZmFsc2UgfTsKICAgICBydGM6OlNvY2tldEFkZHJlc3MgbV9h
ZGRyZXNzOwogICAgIFJldGFpblB0cjxud19saXN0ZW5lcl90PiBtX253TGlzdGVuZXI7CiAgICAg
TG9jayBtX253Q29ubmVjdGlvbnNMb2NrOwpAQCAtNzMsMTYgKzc1LDE1IEBAIHN0YXRpYyBkaXNw
YXRjaF9xdWV1ZV90IHVkcFNvY2tldFF1ZXVlKCkKICAgICByZXR1cm4gcXVldWU7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1VEUFNv
Y2tldENvY29hOjpjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK3N0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpj
cmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNS
ZWxheURpc2FibGVkKQogewotICAgIC8vIEZJWE1FOiBEZWNpZGUgaG93IHRvIHVzZSBtaW5Qb3J0
L21heFBvcnQuCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0d29ya1JUQ1VEUFNvY2tldENvY29h
PihpZGVudGlmaWVyLCBydGNQcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSk7
CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hPihpZGVudGlm
aWVyLCBydGNQcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwgaXNGaXJzdFBh
cnR5LCBpc1JlbGF5RGlzYWJsZWQpOwogfQogCi1OZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6Ok5l
dHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQorTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJv
dmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wg
aXNSZWxheURpc2FibGVkKQogICAgIDogbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKICAgICAs
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9ud0Nvbm5lY3Rpb25zKE5ldHdvcmtS
VENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGUoaWRlbnRpZmllciwgcnRjUHJvdmlk
ZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbikpKQorICAgICwgbV9ud0Nvbm5lY3Rpb25z
KE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGUoaWRlbnRpZmllciwg
cnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIGlzRmlyc3RQYXJ0eSwg
aXNSZWxheURpc2FibGVkKSkKIHsKIH0KIApAQCAtMTA2LDkgKzEwNywxMCBAQCB2b2lkIE5ldHdv
cmtSVENVRFBTb2NrZXRDb2NvYTo6c2VuZFRvKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBz
aXplLCBjb25zdCBydAogICAgIG1fbndDb25uZWN0aW9ucy0+c2VuZFRvKGRhdGEsIHNpemUsIGFk
ZHJlc3MsIG9wdGlvbnMpOwogfQogCi1OZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9u
czo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3Zp
ZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbikKK05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpO
ZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQpCiAg
ICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3Zl
KGNvbm5lY3Rpb24pKQorICAgICwgbV9zaG91bGRCeXBhc3NSZWxheShpc0ZpcnN0UGFydHkgfHwg
aXNSZWxheURpc2FibGVkKQogewogICAgIGF1dG8gcGFyYW1ldGVycyA9IGFkb3B0TlMobndfcGFy
YW1ldGVyc19jcmVhdGVfc2VjdXJlX3VkcChOV19QQVJBTUVURVJTX0RJU0FCTEVfUFJPVE9DT0ws
IE5XX1BBUkFNRVRFUlNfREVGQVVMVF9DT05GSUdVUkFUSU9OKSk7CiAgICAgewpAQCAtMTI0LDYg
KzEyNiw4IEBAIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlCiAgICAgICAgIGF1dG8gb3B0aW9ucyA9
IGFkb3B0TlMobndfcHJvdG9jb2xfc3RhY2tfY29weV9pbnRlcm5ldF9wcm90b2NvbChwcm90b2Nv
bFN0YWNrLmdldCgpKSk7CiAgICAgICAgIG53X2lwX29wdGlvbnNfc2V0X3ZlcnNpb24ob3B0aW9u
cy5nZXQoKSwgYWRkcmVzcy5mYW1pbHkoKSA9PSBBRl9JTkVUID8gbndfaXBfdmVyc2lvbl80IDog
bndfaXBfdmVyc2lvbl82KTsKICAgICB9CisgICAgaWYgKG1fc2hvdWxkQnlwYXNzUmVsYXkpCisg
ICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X2FjY291bnRfaWQocGFyYW1ldGVycy5nZXQoKSwgImNv
bS5hcHBsZS5zYWZhcmkucGVlcnRvcGVlciIpOwogCiAgICAgbV9ud0xpc3RlbmVyID0gYWRvcHRO
Uyhud19saXN0ZW5lcl9jcmVhdGUocGFyYW1ldGVycy5nZXQoKSkpOwogICAgIG53X2xpc3RlbmVy
X3NldF9xdWV1ZShtX253TGlzdGVuZXIuZ2V0KCksIHVkcFNvY2tldFF1ZXVlKCkpOwpAQCAtMjE3
LDYgKzIyMSw4IEBAIFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+IE5ldHdvcmtSVENVRFBTb2Nr
ZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGVOV0Nvbm5lY3RpCiAgICAgICAgIGF1dG8gb3B0aW9u
cyA9IGFkb3B0TlMobndfcHJvdG9jb2xfc3RhY2tfY29weV9pbnRlcm5ldF9wcm90b2NvbChwcm90
b2NvbFN0YWNrLmdldCgpKSk7CiAgICAgICAgIG53X2lwX29wdGlvbnNfc2V0X3ZlcnNpb24ob3B0
aW9ucy5nZXQoKSwgcmVtb3RlQWRkcmVzcy5mYW1pbHkoKSA9PSBBRl9JTkVUID8gbndfaXBfdmVy
c2lvbl80IDogbndfaXBfdmVyc2lvbl82KTsKICAgICB9CisgICAgaWYgKG1fc2hvdWxkQnlwYXNz
UmVsYXkpCisgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X2FjY291bnRfaWQocGFyYW1ldGVycy5n
ZXQoKSwgImNvbS5hcHBsZS5zYWZhcmkucGVlcnRvcGVlciIpOwogCiAgICAgYXV0byByZW1vdGVI
b3N0QWRkcmVzcyA9IHJlbW90ZUFkZHJlc3MuaXBhZGRyKCkuVG9TdHJpbmcoKTsKICAgICBpZiAo
cmVtb3RlQWRkcmVzcy5pcGFkZHIoKS5Jc05pbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGY0MmJiYmMwNjVmOGFmYTc3YmIxNTA3
ZjRkMmJlMjQwMmMzZmRhMy4uZjgzZTMyMTM5ZWVlZmE1NmMwNTk5NGQwZGZhZjQyOTBkZDFlNDc5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zLDcgKzMsNyBAQAogCWFyY2hpdmVWZXJzaW9uID0gMTsKIAljbGFzc2VzID0gewogCX07
Ci0Jb2JqZWN0VmVyc2lvbiA9IDUyOworCW9iamVjdFZlcnNpb24gPSA1NDsKIAlvYmplY3RzID0g
ewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwpAQCAtOTQ1LDYgKzk0
NSw3IEBACiAJCTQxRDEyOURBMUYzRDEwMTgwMEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFE
MTI5RDkxRjNEMTAxNDAwRDE1RTQ3IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggKi87IH07
CiAJCTQxREM0NTk2MUUzRDZFMjIwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTk0MUUzRDZF
MUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1OUMxRTNE
QkIyODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUExRTNEQkIyNDAwQjExRjUxIC8q
IExpYldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9OworCQk0MURENzJBQjI2ODIxNjczMDBBOTBD
NzEgLyogTldQYXJhbWV0ZXJzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MURENzJBQTI2ODIxNjczMDBBOTBDNzEgLyogTldQYXJhbWV0ZXJzU1BJ
LmggKi87IH07CiAJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAq
LzsgfTsKIAkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tldENoYW5uZWwuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QUMy
MjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovOyB9OwogCQk0MUYwNjBF
MTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjBERDE2
NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CkBAIC0zODQ1LDYgKzM4NDYsNyBAQAogCQk0MURDNDVBMDFFM0RDNTNDMDBCMTFGNTEgLyog
V2ViUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViUlRDUmVzb2x2ZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURENzJBNjI2N0I4QzMwMDBBOTBD
NzEgLyogTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MURENzJBNzI2N0I4QzMxMDBBOTBDNzEgLyogTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MURENzJBQTI2ODIxNjczMDBBOTBDNzEgLyogTldQYXJhbWV0ZXJz
U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5XUGFyYW1ldGVyc1NQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAg
LyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGliV2ViUlRDQ29kZWNz
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMEE3QzcyM0I2Mzk3OTAw
NTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTc5MTYsNiArNzkxOCw3IEBACiAJCQkJNTc0MjE3OTEyNDAwRTA5ODAw
MkIzMDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEkuaCAqLywKIAkJCQk1N0I4MjY0MDIzMDRF
QjNFMDBCNzJFQjAgLyogTmVhckZpZWxkU1BJLmggKi8sCiAJCQkJMzc1NEQ1NDQxQjNBMjlGRDAw
M0E0QzdGIC8qIE5TSW52b2NhdGlvblNQSS5oICovLAorCQkJCTQxREQ3MkFBMjY4MjE2NzMwMEE5
MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAqLywKIAkJCQk1Q0I2QUU0MzI2MDk3OTlDMDBCNkVE
NUEgLyogUmVhc29uU1BJLmggKi8sCiAJCQkJMEU5N0Q3NEMyMDBFOEZGMzAwQkY2NjQzIC8qIFNh
ZmVCcm93c2luZ1NQSS5oICovLAogCQkJCTQ0OEFDMjREMjY3MTM1QTYwMEIyODkyMSAvKiBTeW5h
cHNlU1BJLmggKi8sCkBAIC0xMTc1NSw2ICsxMTc1OCw3IEBACiAJCQkJN0NCMzY1QUQxRDMxREMx
MDAwNzE1OENBIC8qIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQ4Nzg2MUQxQkRCNTRCRjAwRDAyQUJCIC8qIF9XS1VzZXJTdHlsZVNoZWV0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyMDFCREI1N0Y1MDBEMDJBQkIgLyogX1dLVXNlclN0
eWxlU2hlZXRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERDcyQUIyNjgyMTY3MzAw
QTkwQzcxIC8qIE5XUGFyYW1ldGVyc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc5MEE2Njky
NTY3OUUwMDAwNzdDNUE3IC8qIF9XS1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE4MUIzODExOEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5r
U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODFCMzg1MThCRDY3M0EwMDA3RkRBQyAvKiBf
V0tWaXNpdGVkTGlua1N0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKaW5kZXggNjI2NDMxNzliY2FiNTk2MmVjYzg4YzEwY2VkM2RkYjg5ODI1Yzg0
MS4uYTUyMTRlMTIwZDAzNmRhNjk1ODE2NDMwNmM1NjI5MmEyNmMyMTZlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6
OnJlZ2lzdGVyTUROU05hbWUoRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwK
IGNsYXNzIFJUQ1NvY2tldEZhY3RvcnkgZmluYWwgOiBwdWJsaWMgTGliV2ViUlRDUHJvdmlkZXI6
OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdl
bnQpOworICAgIFJUQ1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmly
c3RQYXJ0eSk7CiAKIHByaXZhdGU6CiAgICAgLy8gU3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5CkBA
IC05NywxOSArOTcsMjMgQEAgcHJpdmF0ZToKICAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZh
Y2UqIENyZWF0ZUFzeW5jUmVzb2x2ZXIoKSBmaW5hbDsKICAgICB2b2lkIHN1c3BlbmQoKSBmaW5h
bDsKICAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZVJlbGF5KCkgZmlu
YWwgeyBtX2lzUmVsYXlEaXNhYmxlZCA9IHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBTdHJpbmcg
bV91c2VyQWdlbnQ7CisgICAgYm9vbCBtX2lzRmlyc3RQYXJ0eSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2lzUmVsYXlEaXNhYmxlZCB7IGZhbHNlIH07CiB9OwogCi1SVENTb2NrZXRGYWN0b3J5OjpS
VENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkKK1JUQ1NvY2tldEZhY3Rvcnk6OlJU
Q1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSkKICAg
ICA6IG1fdXNlckFnZW50KFdURk1vdmUodXNlckFnZW50KSkKKyAgICAsIG1faXNGaXJzdFBhcnR5
KGlzRmlyc3RQYXJ0eSkKIHsKIH0KIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRDU29ja2V0
RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVz
cywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICByZXR1cm4gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5j
cmVhdGVVZHBTb2NrZXQodGhpcywgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCk7CisgICAgcmV0
dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0
b3J5KCkuY3JlYXRlVWRwU29ja2V0KHRoaXMsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG1f
aXNGaXJzdFBhcnR5LCBtX2lzUmVsYXlEaXNhYmxlZCk7CiB9CiAKIHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBv
cnQsIGludCBvcHRpb25zKQpAQCAtMTUwLDkgKzE1NCw5IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlk
ZXI6OnN0YXJ0ZWROZXR3b3JrVGhyZWFkKCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5s
aWJXZWJSVENOZXR3b3JrKCkuc2V0QXNBY3RpdmUoKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPExp
YldlYlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3Zp
ZGVyOjpjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkKK3N0ZDo6dW5pcXVl
X3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJS
VENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wg
IGlzRmlyc3RQYXJ0eSkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0b3J5
PihXVEZNb3ZlKHVzZXJBZ2VudCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPFJUQ1NvY2tldEZh
Y3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSwgaXNGaXJzdFBhcnR5KTsKIH0KIAogUmVmUHRyPFJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IExpYldlYlJUQ1Byb3ZpZGVyOjpj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKaW5kZXggMWQxNjZjMGFhNjc2MTRmMmM4NmMyM2UwYmJlMGMyMjZiNjBkOTk1Yi4u
OTc4OTY0ODc1MjVjNDU1ZjY3NzcxODVhZTUzMzEyNWNjMzExNTQ2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IExpYldlYlJU
Q1Byb3ZpZGVyKFdlYlBhZ2UmKTsKIAogcHJpdmF0ZToKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3Vz
cGVuZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVz
ZXJBZ2VudCAqLykgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0
RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8sIGJv
b2wgLyogaXNGaXJzdFBhcnR5ICovKSBmaW5hbDsKIAogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3
ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3
ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFs
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggNTMyMzNiZWY5ZWYx
YjlmYjJhNWUzNzI2N2QyYmNlNDFmZTM0ODRiMi4uYmRjYTBmZjJlZGZkYzQ4ODZiOTAzZmViN2Nl
NzE3OGRhNDcyNjEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAt
ODUsMTkgKzg1LDE5IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCB2b2lkCiAgICAgcmV0dXJuIHNvY2tl
dC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBt
YXhQb3J0KQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6
Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJv
b2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCkKIHsKICAgICBBU1NFUlQoIVdU
Rjo6aXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2Vi
UlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQ
LCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAKICAgICBpZiAobV9jb25uZWN0aW9u
KQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRl
cjo6Q3JlYXRlVURQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCk7CisgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2Nr
ZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVz
cyksIG1pblBvcnQsIG1heFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkKSwgMCk7
CiAgICAgZWxzZSB7CiAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtdIHsKICAgICAgICAgICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
OwogICAgICAgICB9KTsKLSAgICAgICAgbV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRl
bnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydF0oYXV0byYgY29ubmVjdGlvbikg
ewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlk
ZXI6OkNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0
KSwgMCk7CisgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIg
PSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2Fi
bGVkXShhdXRvJiBjb25uZWN0aW9uKSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsIGFk
ZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkKSwg
MCk7CiAgICAgICAgIH0pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgK
aW5kZXggNjFiMGM3YTBmYmIyNGE2OWY5M2FiYjJiNDE0NmMwYzdhN2ZjY2M1MC4uNTk3MzNlNWI2
MTI4YzU5YzZjNTJjMzM3MDFiZTc4OWY4OGRlYmI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0
RmFjdG9yeS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXQq
IHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsg
cmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7IH0KIAogICAgIHZvaWQgZm9yU29ja2V0
SW5Hcm91cChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgRnVuY3Rpb248dm9pZChMaWJX
ZWJSVENTb2NrZXQmKT4mKTsKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBT
b2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYs
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOworICAgIHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwg
Ym9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkKTsKICAgICBydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3Jv
dXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90
IG1heFBvcnQsIGludCBvcHRpb25zKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVh
dGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90
ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BP
cHRpb25zJik7CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29ubmVjdGlv
blNvY2tldChMaWJXZWJSVENTb2NrZXQmLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432683</attachid>
            <date>2021-07-01 05:50:52 -0700</date>
            <delta_ts>2021-07-01 06:32:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227253-20210701145051.patch</filename>
            <type>text/plain</type>
            <size>40094</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIxNjExZDBmODhhNjhiZGQ1MDRiNzYw
NzIyNzk5NjE4YmYwM2IxNjMuLmZjOTg0MjA4NzIwMGFhM2I5MTk3NDBiNjE4MjEwZWEyYTY5ODg1
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDctMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGUgcmVsYXkgZm9yIFVEUCBzb2NrZXRzIHdo
ZW4gbm90IG5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3MjUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTkxMjE1ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhh
dmUuaDoKKyAgICAgICAgQWRkIGEgbWFjcm8gZm9yIG5ldyBOVyBtZXRob2RzLgorCiAyMDIxLTA2
LTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMjU5MzIzOTk2MzNkZTM2OGJmMDVkNTZiNjc5YmMxZmU4MjhhYzQxYi4uYWEwMDdiYTIzMDk2
YTEyMzk2OWVmY2IzYTFlZGI3OWE0NjM1N2YwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDIxLTA2LTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVuIG5vdCBuZWVkZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6c2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRDb25maWd1
cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjpydGNTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKwogMjAyMS0wNi0yMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNaWdyYXRlIFdl
YlJUQyBVRFAgc29ja2V0IGhhbmRsaW5nIHRvIE5XIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1OGY4MTQ0MjMw
OTU1NDliMzhhNzAxYjUxZWM1ZmRmOTg5MDdkMDQ4Li40OTQ5M2E1MGVhZDJkOTgwOGRjOTAxYmM2
N2E1MzMxZGJmNGQ2MjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA2LTIyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIHJlbGF5
IGZvciBVRFAgc29ja2V0cyB3aGVuIG5vdCBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3Jl
YXRlVURQU29ja2V0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1Byb3ZpZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1VEUFNvY2tldENvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0
d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlTldDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UlRDU29ja2V0RmFjdG9yeTo6UlRDU29ja2V0RmFjdG9yeSk6CisgICAgICAgIChXZWJL
aXQ6OlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
aDoKKwogMjAyMS0wNi0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBNaWdyYXRlIFdlYlJUQyBVRFAgc29ja2V0IGhhbmRsaW5nIHRvIE5XIEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA4Mzk5NDIzZjg5ZTFlNjExOWI1MGEwYTUwNmRhZDk3
YTMwNzczMmI0Li5iYzA4ZDVmNzkzMGQwYjU1N2NjOTgxYTU1NDZmNGUyMTgwYzc4ZWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUhhdmUuaApAQCAtNTQ2LDYgKzU0NiwxMCBAQAogI2RlZmluZSBIQVZFX05TVVJM
U0VTU0lPTl9XRUJTT0NLRVQgMQogI2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkgfHwgKFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMCkKKyNk
ZWZpbmUgSEFWRV9OV1BBUkFNRVRFUlNfVFJBQ0tFUl9BUEkgMQorI2VuZGlmCisKICNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgIShQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPCAxMDE1MDApICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNkZWZpbmUgSEFW
RV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJWQVRJT05fTEVWRUwgMQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaAppbmRleCAzMzY5NzYzOWUwYmM1MGI2OWU4OGY4ZmM4N2M4Y2VjYTQ0MDc5NzY2
Li5jMDIzNDJiZmRkODY1MDE1NTUyOGUwZjE1OTVjNTc0M2E2MjNmY2I1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVt
dWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKSA9IDA7CiAKICAgICB2b2lk
IG5ld0lDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHAsIFN0cmluZyYmIG1pZCwgdW5zaWduZWQgc2hv
cnQgc2RwTUxpbmVJbmRleCwgU3RyaW5nJiYgc2VydmVyVVJMKTsKLSAgICB2b2lkIGRpc2FibGVJ
Q0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZygpOwogICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlSb3RhdGlvbkZvck91dGdvaW5nVmlkZW9Tb3VyY2Vz
KCkgeyB9CkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdXNw
ZW5kKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIHsgfQogCisgICAgYm9vbCBzaG91
bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGaWx0ZXJJQ0VD
YW5kaWRhdGVzOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaXJlSUNFQ2FuZGlkYXRlRXZl
bnQoUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4mJiwgU3RyaW5nJiYgdXJsKTsKICAgICB2b2lkIGRv
bmVHYXRoZXJpbmdDYW5kaWRhdGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuY3BwCmluZGV4IDQ3ZDFiMjQzZmM3OGU5YzVkYTBiZWQxN2MyOWRjNjI5ZTU0Zjg1
OTguLmYzM2M0Mzc1YjU2MzYzNTJiNTFjYWNjMGY1NzMzODg5ZWRmYThhZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC05NCw3ICs5NCwxMSBAQCBi
b29sIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJv
dmlkZXImIGNsaWVudCwgd2VicnRjOgogICAgIGlmICghbV9iYWNrZW5kKSB7CiAgICAgICAgIGlm
ICghbV9ydGNTb2NrZXRGYWN0b3J5KSB7CiAgICAgICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRv
d25jYXN0PERvY3VtZW50PigqbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpLnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgICAgICBtX3J0Y1NvY2tldEZhY3Rvcnkg
PSBjbGllbnQuY3JlYXRlU29ja2V0RmFjdG9yeShkb2N1bWVudC51c2VyQWdlbnQoZG9jdW1lbnQu
dXJsKCkpKTsKKyAgICAgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiB7IGRvY3VtZW50
LnVybCgpIH07CisgICAgICAgICAgICBib29sIGlzRmlyc3RQYXJ0eSA9IGRvbWFpbiA9PSBSZWdp
c3RyYWJsZURvbWFpbihkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpKTsKKyAgICAgICAg
ICAgIG1fcnRjU29ja2V0RmFjdG9yeSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3Vt
ZW50LnVzZXJBZ2VudChkb2N1bWVudC51cmwoKSksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21h
aW4pKTsKKyAgICAgICAgICAgIGlmICghbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuc2hvdWxkRmls
dGVySUNFQ2FuZGlkYXRlcygpKQorICAgICAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeS0+
ZGlzYWJsZVJlbGF5KCk7CiAgICAgICAgIH0KICAgICAgICAgbV9iYWNrZW5kID0gY2xpZW50LmNy
ZWF0ZVBlZXJDb25uZWN0aW9uKCp0aGlzLCBtX3J0Y1NvY2tldEZhY3RvcnkuZ2V0KCksIFdURk1v
dmUoY29uZmlndXJhdGlvbikpOwogICAgICAgICByZXR1cm4gISFtX2JhY2tlbmQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggMTc2ZTdlY2Q4MjUxNTc2ZWE2
N2MxNDk5MDcyMzljMzdjNjRmYjJhYS4uMTFlNTc4NjhiMjQyOWY5NzE5ZjM3MjlmMzcwZjEzODJk
NzZmNmM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAt
MTE5LDYgKzExOSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQg
cmVzdW1lKCk7CisgICAgTGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9y
eSogcnRjU29ja2V0RmFjdG9yeSgpIHsgcmV0dXJuIG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKTsg
fQogCiBwcml2YXRlOgogICAgIExpYldlYlJUQ01lZGlhRW5kcG9pbnQoTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kJiwgTGliV2ViUlRDUHJvdmlkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGNiYmU2ZDcx
Njk2OTg1ZmQzMGNiMmU5MzkyNzQ5MzgyZjc2NDlkZGUuLmRhNWZjM2ZiM2E2MTUwMDAwYWVjOTQ5
OTIxODNiZDJiNWU4MmQzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMTAyLDYgKzEwMiwxMyBAQCB2b2lkIExpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6cmVzdW1lKCkKICAgICBtX2VuZHBvaW50LT5yZXN1
bWUoKTsKIH0KIAordm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJ
Q0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQoreworICAgIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlz
YWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIGlmIChhdXRvKiBmYWN0b3J5ID0gbV9l
bmRwb2ludC0+cnRjU29ja2V0RmFjdG9yeSgpKQorICAgICAgICBmYWN0b3J5LT5kaXNhYmxlUmVs
YXkoKTsKK30KKwogc3RhdGljIGlubGluZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNl
OjpCdW5kbGVQb2xpY3kgYnVuZGxlUG9saWN5ZnJvbUNvbmZpZ3VyYXRpb24oY29uc3QgTWVkaWFF
bmRwb2ludENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgc3dpdGNoIChjb25m
aWd1cmF0aW9uLmJ1bmRsZVBvbGljeSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCBiZjMwODNhN2VhOGE3YTc3OWRkY2I3Njdh
NjM5OGJkNDE1MzhkNGYwLi5mOWQxMjM3NmNkMTkzMzIxN2NlMWMyMGJjMjlkZDc1MGVkMGZlZTY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaApAQCAtMTEwLDYgKzExMCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN1c3BlbmQoKSBm
aW5hbDsKICAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZygpIGZpbmFsOwogCiAgICAgUmVmPExpYldlYlJUQ01lZGlhRW5kcG9pbnQ+
IG1fZW5kcG9pbnQ7CiAgICAgYm9vbCBtX2lzTG9jYWxEZXNjcmlwdGlvblNldCB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDA4YTI5NTY4ZTlhNmViYmJh
YzlkODU1ZjgyMzFiMTU2NmJiODJjOTMuLjE4NjI3ZWU1N2Y3NThhMDQ3MjJkMTYxNmYwZjg3NjI4
NDM0MTE1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02Miw2ICs2
Miw3IEBAIGNsYXNzIFBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZTsKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgTGliV2ViUlRDQXVkaW9Nb2R1bGU7CitjbGFzcyBSZWdpc3RyYWJs
ZURvbWFpbjsKIHN0cnVjdCBQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzOwogc3RydWN0
IFJUQ1J0cENhcGFiaWxpdGllczsKIApAQCAtMTM5LDggKzE0MCw5IEBAIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCB+U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc3Vt
ZSgpIHsgfTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVSZWxheSgpIHsgfTsKICAgICB9
OwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4g
Y3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZh
Y3Rvcnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovLCBib29s
IC8qIGlzRmlyc3RQYXJ0eSAqLywgUmVnaXN0cmFibGVEb21haW4mJikgeyByZXR1cm4gbnVsbHB0
cjsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgTGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLmNwcAppbmRleCBmNzJmMmNmZGNmMmNiZDYwNGJjNGNkNTA3OTJiOWQ3YmY0
YTdhMzhhLi5lZjc4NDAyNDBjMjkwNGQyZDZiNTRmMWZjMTkzY2M4ZWQyZWZjMTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5jcHAKQEAgLTEzMiwxMSArMTMyLDExIEBAIHZvaWQgTmV0d29ya1JUQ1Byb3Zp
ZGVyOjpjcmVhdGVTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBz
dGQ6CiAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0
Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywgV1RGTW92ZShzb2NrZXQpLCB0eXBlLCBXVEZNb3Zl
KGNvbm5lY3Rpb24pKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBT
b2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBt
YXhQb3J0KQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wg
aXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiBkb21haW4pCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGxhdGZv
cm1VRFBTb2NrZXRzRW5hYmxlZCkgewotICAgICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgYWRk
cmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9ydCwgbV9pcGNDb25uZWN0aW9uLmNvcHlSZWYoKSkp
IHsKKyAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpj
cmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwgKnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQs
IG1heFBvcnQsIG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCksIGlzRmlyc3RQYXJ0eSwgaXNSZWxh
eURpc2FibGVkLCBXVEZNb3ZlKGRvbWFpbikpKSB7CiAgICAgICAgICAgICBhZGRTb2NrZXQoaWRl
bnRpZmllciwgV1RGTW92ZShzb2NrZXQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIuaAppbmRleCA1NTE3MTljNWZjOGU2ZDUzZTdkZmViNDZiODJkNjY0YjI5
ZDEyNjgxLi5iMjk4NWJhZTk0YjZlNGYzZWQxMzEzYzNlODI0YzI4NTcwY2RjYzMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
UHJvdmlkZXIuaApAQCAtNTIsNiArNTIsNyBAQCBzdHJ1Y3QgUGFja2V0T3B0aW9uczsKIH0KIAog
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVnaXN0cmFibGVEb21haW47CiBjbGFzcyBTaGFy
ZWRCdWZmZXI7CiB9CiAKQEAgLTEwNyw3ICsxMDgsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0
IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogICAg
IHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0
KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOworICAgIHZvaWQgY3JlYXRlVURQU29j
a2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QsIGJvb2wgaXNGaXJzdFBhcnR5LCBi
b29sIGlzUmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7CiAgICAg
dm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCk7CiAgICAgdm9pZCBjcmVh
dGVTZXJ2ZXJUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90
IG1heFBvcnQsIGludCk7CiAgICAgdm9pZCB3cmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IGJmZGRkYTc5OTgzNmE0NTBkOGI1OTkyZDk1
MTgyNTE1OGM2MzFjNWIuLjE5NTQwOTZhYjE1NjFhN2E3ZmRmNWM1MGUzYTMwMzI0ODY0NmUzNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAK
ICNpZiBVU0UoTElCV0VCUlRDKQogCiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewot
ICAgIENyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3Ms
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRlVURQU29ja2V0
KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVk
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAgQ3JlYXRlU2VydmVyVENQ
U29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
S2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiAgICAgQ3JlYXRlQ2xpZW50VENQ
U29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
S2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGlu
dCBvcHRpb25zKQogICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hLmgKaW5kZXggN2E3NTEyOWJmZGUyZTY3YjFmYjJmYjAwNTg5ZTlmMjViMDUxM2M0Ny4uMDE2
MjBhMWZlMzJkN2Q2ZDczYjBiNjQxMTJkZWFkZjUzOGVhZDVlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNv
Y2tldENvY29hLmgKQEAgLTU5LDkgKzU5LDkgQEAgY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hQ29ubmVjdGlvbnM7CiBjbGFzcyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EgZmluYWwgOiBw
dWJsaWMgTmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1By
b3ZpZGVyOjpTb2NrZXQ+IGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29j
a2V0PiBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwg
TmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBp
c0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYpOwogCi0gICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6Okxp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIE5ldHdvcmtSVENV
RFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3Jr
UlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgfk5ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tCmluZGV4IDgwMzll
ODViZTgyOWZkYTQzOGFlZWYzOWZkMGRjNTA2MzA2YzUwNjkuLmIwNzJiN2JkYzgyZTM4ZDkzZGM3
ODIwYjMyODExZTQ4NDExZWIwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW0KQEAg
LTMxLDMxICszMSw0NiBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJM
aWJXZWJSVENOZXR3b3JrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiTldQYXJhbWV0ZXJzU1BJLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFp
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1RVTk1lc3NhZ2VQYXJzaW5nLmg+CiAjaW5jbHVkZSA8
ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNpbmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KIAorI2lmIEhBVkUoTldQQVJBTUVURVJTX1RSQUNLRVJfQVBJKQorU09GVF9MSU5LX0xJQlJB
UlkobGlibmV0d29ya2V4dGVuc2lvbikKK1NPRlRfTElOS19DTEFTUyhsaWJuZXR3b3JrZXh0ZW5z
aW9uLCBORUhlbHBlclRyYWNrZXJEaXNwb3NpdGlvbl90KQorU09GVF9MSU5LX0NMQVNTKGxpYm5l
dHdvcmtleHRlbnNpb24sIE5FSGVscGVyVHJhY2tlckFwcEluZm9SZWYpCitTT0ZUX0xJTktfQ0xB
U1MobGlibmV0d29ya2V4dGVuc2lvbiwgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZikK
K1NPRlRfTElOSyhsaWJuZXR3b3JrZXh0ZW5zaW9uLCBORUhlbHBlclRyYWNrZXJHZXREaXNwb3Np
dGlvbiwgTkVIZWxwZXJUcmFja2VyRGlzcG9zaXRpb25fdCosIChORUhlbHBlclRyYWNrZXJBcHBJ
bmZvUmVmICphcHBfaW5mb19yZWYsIENGQXJyYXlSZWYgZG9tYWlucywgTkVIZWxwZXJUcmFja2Vy
RG9tYWluQ29udGV4dFJlZiAqdHJhY2tlckRvbWFpbkNvbnRleHRSZWYsIENGSW5kZXggKnRyYWNr
ZXJEb21haW5JbmRleCksIChhcHBfaW5mb19yZWYsIGRvbWFpbnMsIHRyYWNrZXJEb21haW5Db250
ZXh0UmVmLCB0cmFja2VyRG9tYWluSW5kZXgpKQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hQ29ubmVjdGlvbnMgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JU
Q1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5l
dHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zPiBjcmVhdGUoV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHByb3Zp
ZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2FDb25uZWN0aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92
ZShjb25uZWN0aW9uKSkpOyB9CisgICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2FDb25uZWN0aW9ucz4gY3JlYXRlKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
aWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJv
b2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mIGRvbWFpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywg
V1RGTW92ZShjb25uZWN0aW9uKSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFp
bikpOyB9CiAKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlv
biwgaW50IHZhbHVlKTsKICAgICB2b2lkIHNlbmRUbyhjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBydGM6OlBhY2tldE9wdGlvbnMmKTsKIAog
cHJpdmF0ZToKLSAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlz
YWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAKICAgICBSZXRhaW5Q
dHI8bndfY29ubmVjdGlvbl90PiBjcmVhdGVOV0Nvbm5lY3Rpb24oY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJik7CiAgICAgdm9pZCBzZXR1cE5XQ29ubmVjdGlvbihud19jb25uZWN0aW9uX3QsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOworICAgIHZvaWQgY29uZmlndXJlUGFyYW1ldGVycyhu
d19wYXJhbWV0ZXJzX3QsIG53X2lwX3ZlcnNpb25fdCk7CiAKICAgICBXZWJDb3JlOjpMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisgICAgYm9vbCBtX2lzRmlyc3RQYXJ0eSB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lzS25vd25UcmFja2VyIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQnlwYXNz
UmVsYXkgeyBmYWxzZSB9OwogICAgIHJ0Yzo6U29ja2V0QWRkcmVzcyBtX2FkZHJlc3M7CiAgICAg
UmV0YWluUHRyPG53X2xpc3RlbmVyX3Q+IG1fbndMaXN0ZW5lcjsKICAgICBMb2NrIG1fbndDb25u
ZWN0aW9uc0xvY2s7CkBAIC03MywxNiArODgsMTUgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3Qg
dWRwU29ja2V0UXVldWUoKQogICAgIHJldHVybiBxdWV1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNy
ZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQ
cm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tl
dChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtS
VENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVz
cywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQs
IGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiB7Ci0gICAgLy8gRklY
TUU6IERlY2lkZSBob3cgdG8gdXNlIG1pblBvcnQvbWF4UG9ydC4KLSAgICByZXR1cm4gbWFrZVVu
aXF1ZTxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBh
ZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWlu
KTsKIH0KIAotTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3Jr
UlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJl
c3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK05ldHdvcmtSVENVRFBTb2Nr
ZXRDb2NvYTo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKICAgICA6IG1fcnRjUHJvdmlk
ZXIocnRjUHJvdmlkZXIpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1f
bndDb25uZWN0aW9ucyhOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRl
KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSkK
KyAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9u
czo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5l
Y3Rpb24pLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSkKIHsKIH0KIApA
QCAtMTA2LDkgKzEyMCwzNyBAQCB2b2lkIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6c2VuZFRv
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBjb25zdCBydAogICAgIG1fbndDb25u
ZWN0aW9ucy0+c2VuZFRvKGRhdGEsIHNpemUsIGFkZHJlc3MsIG9wdGlvbnMpOwogfQogCi1OZXR3
b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Q29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVy
LCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK3N0YXRpYyBy
dGM6OlNvY2tldEFkZHJlc3Mgc29ja2V0QWRkcmVzc0Zyb21JbmNvbWluZ0Nvbm5lY3Rpb24obndf
Y29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBlbmRwb2ludCA9IGFkb3B0TlMo
bndfY29ubmVjdGlvbl9jb3B5X2VuZHBvaW50KGNvbm5lY3Rpb24pKTsKKyAgICBhdXRvIHR5cGUg
PSBud19lbmRwb2ludF9nZXRfdHlwZShlbmRwb2ludC5nZXQoKSk7CisgICAgaWYgKHR5cGUgPT0g
bndfZW5kcG9pbnRfdHlwZV9hZGRyZXNzKSB7CisgICAgICAgIGF1dG8qIGlwQWRkcmVzcyA9IG53
X2VuZHBvaW50X2NvcHlfYWRkcmVzc19zdHJpbmcoZW5kcG9pbnQuZ2V0KCkpOworICAgICAgICBy
dGM6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcyB7IGlwQWRkcmVzcywgbndfZW5kcG9pbnRf
Z2V0X3BvcnQoZW5kcG9pbnQuZ2V0KCkpIH07CisgICAgICAgIGZyZWUoaXBBZGRyZXNzKTsKKyAg
ICAgICAgcmV0dXJuIHJlbW90ZUFkZHJlc3M7CisgICAgfQorICAgIHJldHVybiBydGM6OlNvY2tl
dEFkZHJlc3MgeyBud19lbmRwb2ludF9nZXRfaG9zdG5hbWUoZW5kcG9pbnQuZ2V0KCkpLCBud19l
bmRwb2ludF9nZXRfcG9ydChlbmRwb2ludC5nZXQoKSkgfTsKK30KKworc3RhdGljIGJvb2wgaXNL
bm93blRyYWNrZXIoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKK3sK
KyNpZiBIQVZFKE5XUEFSQU1FVEVSU19UUkFDS0VSX0FQSSkKKyAgICBOU0FycmF5PE5TU3RyaW5n
ICo+ICpkb21haW5zID0gQFtkb21haW4uc3RyaW5nKCldOworICAgIE5FSGVscGVyVHJhY2tlckRv
bWFpbkNvbnRleHRSZWYgKmNvbnRleHQgPSBuaWw7CisgICAgQ0ZJbmRleCBpbmRleCA9IDA7Cisg
ICAgcmV0dXJuICEhTkVIZWxwZXJUcmFja2VyR2V0RGlzcG9zaXRpb24obnVsbHB0ciwgKENGQXJy
YXlSZWYpZG9tYWlucywgY29udGV4dCwgJmluZGV4KTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCit9CisKK05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiAgICAgOiBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAg
ICwgbV9pc0ZpcnN0UGFydHkoaXNGaXJzdFBhcnR5KQorICAgICwgbV9pc0tub3duVHJhY2tlcihp
c0tub3duVHJhY2tlcihkb21haW4pKQorICAgICwgbV9zaG91bGRCeXBhc3NSZWxheShpc1JlbGF5
RGlzYWJsZWQpCiB7CiAgICAgYXV0byBwYXJhbWV0ZXJzID0gYWRvcHROUyhud19wYXJhbWV0ZXJz
X2NyZWF0ZV9zZWN1cmVfdWRwKE5XX1BBUkFNRVRFUlNfRElTQUJMRV9QUk9UT0NPTCwgTldfUEFS
QU1FVEVSU19ERUZBVUxUX0NPTkZJR1VSQVRJT04pKTsKICAgICB7CkBAIC0xMTksMTEgKzE2MSw3
IEBAIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlCiAgICAgICAgIG1fYWRkcmVzcyA9IHsgbndfZW5k
cG9pbnRfZ2V0X2hvc3RuYW1lKGxvY2FsRW5kcG9pbnQuZ2V0KCkpLCBud19lbmRwb2ludF9nZXRf
cG9ydChsb2NhbEVuZHBvaW50LmdldCgpKSB9OwogICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9s
b2NhbF9lbmRwb2ludChwYXJhbWV0ZXJzLmdldCgpLCBsb2NhbEVuZHBvaW50LmdldCgpKTsKICAg
ICB9Ci0gICAgewotICAgICAgICBhdXRvIHByb3RvY29sU3RhY2sgPSBhZG9wdE5TKG53X3BhcmFt
ZXRlcnNfY29weV9kZWZhdWx0X3Byb3RvY29sX3N0YWNrKHBhcmFtZXRlcnMuZ2V0KCkpKTsKLSAg
ICAgICAgYXV0byBvcHRpb25zID0gYWRvcHROUyhud19wcm90b2NvbF9zdGFja19jb3B5X2ludGVy
bmV0X3Byb3RvY29sKHByb3RvY29sU3RhY2suZ2V0KCkpKTsKLSAgICAgICAgbndfaXBfb3B0aW9u
c19zZXRfdmVyc2lvbihvcHRpb25zLmdldCgpLCBhZGRyZXNzLmZhbWlseSgpID09IEFGX0lORVQg
PyBud19pcF92ZXJzaW9uXzQgOiBud19pcF92ZXJzaW9uXzYpOwotICAgIH0KKyAgICBjb25maWd1
cmVQYXJhbWV0ZXJzKHBhcmFtZXRlcnMuZ2V0KCksIGFkZHJlc3MuZmFtaWx5KCkgPT0gQUZfSU5F
VCA/IG53X2lwX3ZlcnNpb25fNCA6IG53X2lwX3ZlcnNpb25fNik7CiAKICAgICBtX253TGlzdGVu
ZXIgPSBhZG9wdE5TKG53X2xpc3RlbmVyX2NyZWF0ZShwYXJhbWV0ZXJzLmdldCgpKSk7CiAgICAg
bndfbGlzdGVuZXJfc2V0X3F1ZXVlKG1fbndMaXN0ZW5lci5nZXQoKSwgdWRwU29ja2V0UXVldWUo
KSk7CkBAIC0xNTQsOSArMTkyLDcgQEAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlv
bnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmUKICAgICAgICAg
aWYgKHByb3RlY3RlZFRoaXMtPm1faXNDbG9zZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgYXV0byBlbmRwb2ludCA9IGFkb3B0TlMobndfY29ubmVjdGlvbl9jb3B5X2VuZHBvaW50
KGNvbm5lY3Rpb24pKTsKLSAgICAgICAgcnRjOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3Mg
eyBud19lbmRwb2ludF9nZXRfaG9zdG5hbWUoZW5kcG9pbnQuZ2V0KCkpLCBud19lbmRwb2ludF9n
ZXRfcG9ydChlbmRwb2ludC5nZXQoKSkgfTsKLQorICAgICAgICBhdXRvIHJlbW90ZUFkZHJlc3Mg
PSBzb2NrZXRBZGRyZXNzRnJvbUluY29taW5nQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+bV9ud0Nvbm5lY3Rpb25zLnNldChyZW1vdGVBZGRyZXNzLCBjb25u
ZWN0aW9uKTsKICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c2V0dXBOV0Nvbm5lY3Rpb24oY29ubmVj
dGlvbiwgcmVtb3RlQWRkcmVzcyk7CiAgICAgfSkuZ2V0KCkpOwpAQCAtMTY0LDYgKzIwMCwyMCBA
QCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZQogICAgIG53X2xpc3RlbmVyX3N0YXJ0KG1fbndMaXN0
ZW5lci5nZXQoKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlv
bnM6OmNvbmZpZ3VyZVBhcmFtZXRlcnMobndfcGFyYW1ldGVyc190IHBhcmFtZXRlcnMsIG53X2lw
X3ZlcnNpb25fdCB2ZXJzaW9uKQoreworICAgIGF1dG8gcHJvdG9jb2xTdGFjayA9IGFkb3B0TlMo
bndfcGFyYW1ldGVyc19jb3B5X2RlZmF1bHRfcHJvdG9jb2xfc3RhY2socGFyYW1ldGVycykpOwor
ICAgIGF1dG8gb3B0aW9ucyA9IGFkb3B0TlMobndfcHJvdG9jb2xfc3RhY2tfY29weV9pbnRlcm5l
dF9wcm90b2NvbChwcm90b2NvbFN0YWNrLmdldCgpKSk7CisgICAgbndfaXBfb3B0aW9uc19zZXRf
dmVyc2lvbihvcHRpb25zLmdldCgpLCB2ZXJzaW9uKTsKKworICAgIGlmIChtX3Nob3VsZEJ5cGFz
c1JlbGF5KQorICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9hY2NvdW50X2lkKHBhcmFtZXRlcnMs
ICJjb20uYXBwbGUuc2FmYXJpLnBlZXJ0b3BlZXIiKTsKKyNpZiBIQVZFKE5XUEFSQU1FVEVSU19U
UkFDS0VSX0FQSSkKKyAgICBud19wYXJhbWV0ZXJzX3NldF9pc190aGlyZF9wYXJ0eV93ZWJfY29u
dGVudChwYXJhbWV0ZXJzLCBtX2lzRmlyc3RQYXJ0eSk7CisgICAgbndfcGFyYW1ldGVyc19zZXRf
aXNfa25vd25fdHJhY2tlcihwYXJhbWV0ZXJzLCBtX2lzS25vd25UcmFja2VyKTsKKyNlbmRpZgor
fQorCiB2b2lkIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjbG9zZSgpCiB7
CiAgICAgTG9ja2VyIGxvY2tlciB7IG1fbndDb25uZWN0aW9uc0xvY2sgfTsKQEAgLTIxMiwxMSAr
MjYyLDcgQEAgUmV0YWluUHRyPG53X2Nvbm5lY3Rpb25fdD4gTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hQ29ubmVjdGlvbnM6OmNyZWF0ZU5XQ29ubmVjdGkKICAgICAgICAgYXV0byBsb2NhbEVuZHBv
aW50ID0gYWRvcHROUyhud19lbmRwb2ludF9jcmVhdGVfaG9zdChob3N0QWRkcmVzcy5jX3N0cigp
LCBTdHJpbmc6Om51bWJlcihtX2FkZHJlc3MucG9ydCgpKS51dGY4KCkuZGF0YSgpKSk7CiAgICAg
ICAgIG53X3BhcmFtZXRlcnNfc2V0X2xvY2FsX2VuZHBvaW50KHBhcmFtZXRlcnMuZ2V0KCksIGxv
Y2FsRW5kcG9pbnQuZ2V0KCkpOwogICAgIH0KLSAgICB7Ci0gICAgICAgIGF1dG8gcHJvdG9jb2xT
dGFjayA9IGFkb3B0TlMobndfcGFyYW1ldGVyc19jb3B5X2RlZmF1bHRfcHJvdG9jb2xfc3RhY2so
cGFyYW1ldGVycy5nZXQoKSkpOwotICAgICAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKG53X3By
b3RvY29sX3N0YWNrX2NvcHlfaW50ZXJuZXRfcHJvdG9jb2wocHJvdG9jb2xTdGFjay5nZXQoKSkp
OwotICAgICAgICBud19pcF9vcHRpb25zX3NldF92ZXJzaW9uKG9wdGlvbnMuZ2V0KCksIHJlbW90
ZUFkZHJlc3MuZmFtaWx5KCkgPT0gQUZfSU5FVCA/IG53X2lwX3ZlcnNpb25fNCA6IG53X2lwX3Zl
cnNpb25fNik7Ci0gICAgfQorICAgIGNvbmZpZ3VyZVBhcmFtZXRlcnMocGFyYW1ldGVycy5nZXQo
KSwgcmVtb3RlQWRkcmVzcy5mYW1pbHkoKSA9PSBBRl9JTkVUID8gbndfaXBfdmVyc2lvbl80IDog
bndfaXBfdmVyc2lvbl82KTsKIAogICAgIGF1dG8gcmVtb3RlSG9zdEFkZHJlc3MgPSByZW1vdGVB
ZGRyZXNzLmlwYWRkcigpLlRvU3RyaW5nKCk7CiAgICAgaWYgKHJlbW90ZUFkZHJlc3MuaXBhZGRy
KCkuSXNOaWwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29h
L05XUGFyYW1ldGVyc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQ
YXJhbWV0ZXJzU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ1MjgxYTJmNjE3NDg1MmRlYmU2OGE4OTMwZWQ3
NTM4YjdhMzhhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL05XUGFyYW1ldGVyc1NQSS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8bncvcHJpdmF0ZS5oPgorCisj
ZWxzZQorCisjaW1wb3J0IDxudy9wYXJhbWV0ZXJzLmg+CisKK1dURl9FWFRFUk5fQ19CRUdJTgor
Cit2b2lkIG53X3BhcmFtZXRlcnNfc2V0X2FjY291bnRfaWQobndfcGFyYW1ldGVyc190LCBjb25z
dCBjaGFyICogYWNjb3VudF9pZCk7CisKKyNpZiBIQVZFKE5XUEFSQU1FVEVSU19UUkFDS0VSX0FQ
SSkKK3ZvaWQgbndfcGFyYW1ldGVyc19zZXRfaXNfdGhpcmRfcGFydHlfd2ViX2NvbnRlbnQobndf
cGFyYW1ldGVyc190LCBib29sIGlzX3RoaXJkX3BhcnR5X3dlYl9jb250ZW50KTsKK3ZvaWQgbndf
cGFyYW1ldGVyc19zZXRfaXNfa25vd25fdHJhY2tlcihud19wYXJhbWV0ZXJzX3QsIGJvb2wgaXNf
a25vd25fdHJhY2tlcik7CisjZW5kaWYgLy8gSEFWRShOV1BBUkFNRVRFUlNfVFJBQ0tFUl9BUEkp
CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA0ZjQyYmJiYzA2NWY4YWZhNzdiYjE1MDdmNGQyYmUyNDAyYzNmZGEzLi40ZDU3NDZjZWFjNzk0
ZmI5YTc3YWExY2RhNzU4YjRmNDdhMTFmNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMsNyArMyw3IEBACiAJYXJjaGl2ZVZlcnNp
b24gPSAxOwogCWNsYXNzZXMgPSB7CiAJfTsKLQlvYmplY3RWZXJzaW9uID0gNTI7CisJb2JqZWN0
VmVyc2lvbiA9IDU0OwogCW9iamVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCBzZWN0aW9uICovCkBAIC05NDUsNiArOTQ1LDcgQEAKIAkJNDFEMTI5REExRjNEMTAxODAwRDE1
RTQ3IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQxMjlEOTFGM0QxMDE0MDBEMTVFNDcgLyogV2ViQ2Fj
aGVTdG9yYWdlUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1OTYxRTNENkUyMjAwQjExRjUxIC8q
IE5ldHdvcmtSVENQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRl
ci5oICovOyB9OwogCQk0MURDNDU5QzFFM0RCQjI4MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MURDNDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50LmggKi87IH07
CisJCTQxREQ3MkFCMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREQ3MkFBMjY4MjE2NzMw
MEE5MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAqLzsgfTsKIAkJNDFERTdDNkMyMjI3OEYxRTAw
NTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNl
cnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovOyB9OwogCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEw
NjAgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hh
bm5lbC5jcHAgKi87IH07CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRD
aGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFu
bmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTM4NDUsNiArMzg0Niw3IEBACiAJCTQx
REM0NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3
b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxREQ3MkE2MjY3QjhDMzAwMEE5MEM3MSAvKiBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREQ3MkE3MjY3QjhDMzEwMEE5MEM3MSAvKiBO
ZXR3b3JrUlRDVURQU29ja2V0Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1JUQ1VEUFNv
Y2tldENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREQ3MkFBMjY4MjE2
NzMwMEE5MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTldQYXJhbWV0ZXJzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHku
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTBBN0M4MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJX
ZWJSVENDb2RlY3NQcm94eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzkxNiw2ICs3OTE4LDcg
QEAKIAkJCQk1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50aWNhdGlvblNQ
SS5oICovLAogCQkJCTU3QjgyNjQwMjMwNEVCM0UwMEI3MkVCMCAvKiBOZWFyRmllbGRTUEkuaCAq
LywKIAkJCQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0aW9uU1BJLmggKi8s
CisJCQkJNDFERDcyQUEyNjgyMTY3MzAwQTkwQzcxIC8qIE5XUGFyYW1ldGVyc1NQSS5oICovLAog
CQkJCTVDQjZBRTQzMjYwOTc5OUMwMEI2RUQ1QSAvKiBSZWFzb25TUEkuaCAqLywKIAkJCQkwRTk3
RDc0QzIwMEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8sCiAJCQkJNDQ4QUMy
NEQyNjcxMzVBNjAwQjI4OTIxIC8qIFN5bmFwc2VTUEkuaCAqLywKQEAgLTEyMTMzLDYgKzEyMTM2
LDcgQEAKIAkJCQkxQzIwOTM2MDIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzIxODQwMjIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRy
aWJ1dGVkU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc1NEQ1NDUxQjNBMjlG
RDAwM0E0QzdGIC8qIE5TSW52b2NhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERDcy
QUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XUGFyYW1ldGVyc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM4QUNBMTMxNjY3MEQ4OTAwNEMxOTQxIC8qIE9iakNPYmplY3RHcmFwaC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0NGNDdGRkIxNzI3NUM1NzAwOEFDQjkxIC8qIFBhZ2VCYW5uZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNkVEQUE2MTExMjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDYyNjQzMTc5YmNh
YjU5NjJlY2M4OGMxMGNlZDNkZGI4OTgyNWM4NDEuLjUyMjJiYjlkMDEyYjE2NTNiMDdmYjA5ZDRm
MWY3ODdiNmE3ZGU4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFp
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBp
L2FzeW5jX3Jlc29sdmVyX2ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvcGMvcGVlcl9jb25u
ZWN0aW9uX2ZhY3RvcnkuaD4KQEAgLTg3LDcgKzg4LDcgQEAgdm9pZCBMaWJXZWJSVENQcm92aWRl
cjo6cmVnaXN0ZXJNRE5TTmFtZShEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVy
LAogY2xhc3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBMaWJXZWJSVENQcm92aWRl
cjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJB
Z2VudCk7CisgICAgUlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNG
aXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmKTsKIAogcHJpdmF0ZToKICAgICAvLyBTdXNw
ZW5kYWJsZVNvY2tldEZhY3RvcnkKQEAgLTk3LDE5ICs5OCwyNSBAQCBwcml2YXRlOgogICAgIHJ0
Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRlQXN5bmNSZXNvbHZlcigpIGZpbmFsOwog
ICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CisgICAg
dm9pZCBkaXNhYmxlUmVsYXkoKSBmaW5hbCB7IG1faXNSZWxheURpc2FibGVkID0gdHJ1ZTsgfQog
CiBwcml2YXRlOgogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKKyAgICBib29sIG1faXNGaXJzdFBh
cnR5IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWxheURpc2FibGVkIHsgZmFsc2UgfTsKKyAg
ICBSZWdpc3RyYWJsZURvbWFpbiBtX2RvbWFpbjsKIH07CiAKLVJUQ1NvY2tldEZhY3Rvcnk6OlJU
Q1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50KQorUlRDU29ja2V0RmFjdG9yeTo6UlRD
U29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdp
c3RyYWJsZURvbWFpbiYmIGRvbWFpbikKICAgICA6IG1fdXNlckFnZW50KFdURk1vdmUodXNlckFn
ZW50KSkKKyAgICAsIG1faXNGaXJzdFBhcnR5KGlzRmlyc3RQYXJ0eSkKKyAgICAsIG1fZG9tYWlu
KFdURk1vdmUoZG9tYWluKSkKIHsKIH0KIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRDU29j
a2V0RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRk
cmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICByZXR1cm4g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3Rvcnko
KS5jcmVhdGVVZHBTb2NrZXQodGhpcywgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCk7CisgICAg
cmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRG
YWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0KHRoaXMsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQs
IG1faXNGaXJzdFBhcnR5LCBtX2lzUmVsYXlEaXNhYmxlZCwgbV9kb21haW4pOwogfQogCiBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2Nr
ZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKQEAgLTE1MCw5ICsxNTcsOSBAQCB2b2lkIExp
YldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVkTmV0d29ya1RocmVhZCgpCiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNldEFzQWN0aXZlKCk7CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBM
aWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQp
CitzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFj
dG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNl
ckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCiB7
Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8UlRDU29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdl
bnQpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVz
ZXJBZ2VudCksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsKIH0KIAogUmVmUHRyPFJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IExpYldlYlJUQ1Byb3ZpZGVyOjpj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKaW5kZXggMWQxNjZjMGFhNjc2MTRmMmM4NmMyM2UwYmJlMGMyMjZiNjBkOTk1Yi4u
NjA1OGU1NGMxNTM4OTQ4ZDhhNmI0NDM1MjdkNTNjMGQ4NzhhYmZmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IExpYldlYlJU
Q1Byb3ZpZGVyKFdlYlBhZ2UmKTsKIAogcHJpdmF0ZToKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3Vz
cGVuZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVz
ZXJBZ2VudCAqLykgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0
RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8sIGJv
b2wgLyogaXNGaXJzdFBhcnR5ICovLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKSBmaW5h
bDsKIAogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIm
LCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlOjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0
RmFjdG9yeS5jcHAKaW5kZXggNTMyMzNiZWY5ZWYxYjlmYjJhNWUzNzI2N2QyYmNlNDFmZTM0ODRi
Mi4uYTM5MzliYzE0NWUwYjk4M2RiMThiNzlhZDdhNjJmZTY5NjY2Y2IzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtODUsMTkgKzg1LDE5IEBAIHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tl
dChjb25zdCB2b2lkCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChj
b25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNz
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQorcnRjOjpBc3luY1BhY2tldFNv
Y2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQq
IHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVs
YXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKIHsK
ICAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIHNvY2tldCA9IG1h
a2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAKICAgICBp
ZiAobV9jb25uZWN0aW9uKQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCk7
CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVy
OjpDcmVhdGVVRFBTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxh
eURpc2FibGVkLCBkb21haW4pLCAwKTsKICAgICBlbHNlIHsKICAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW10gewogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgICAgIH0pOwotICAgICAgICBtX3BlbmRpbmdN
ZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFk
ZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQ
b3J0XShhdXRvJiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsIGFk
ZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpLCAwKTsKKyAgICAgICAgbV9wZW5kaW5nTWVzc2FnZVRh
c2tzLmFwcGVuZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0g
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgaXNG
aXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbl0oYXV0byYgY29ubmVjdGlvbikgewor
ICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6
OkNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBp
c0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSwgMCk7CiAgICAgICAgIH0pOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggNjFiMGM3YTBmYmIy
NGE2OWY5M2FiYjJiNDE0NmMwYzdhN2ZjY2M1MC4uNzFkMTI0ODI3YWIyYTZlYTI5YjE4OTliZGMw
NzQ0MmI0YjkxYmQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXQqIHNvY2tldChXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5n
ZXQoaWRlbnRpZmllcik7IH0KIAogICAgIHZvaWQgZm9yU29ja2V0SW5Hcm91cChjb25zdCB2b2lk
KiBzb2NrZXRHcm91cCwgY29uc3QgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mKTsK
LSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBTb2NrZXQoY29uc3Qgdm9pZCog
c29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpOworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVk
cFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHks
IGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYp
OwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25z
dCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpOwogICAgIHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91
cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBydGM6
OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBj
cmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYsIFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432685</attachid>
            <date>2021-07-01 06:32:36 -0700</date>
            <delta_ts>2021-07-01 08:11:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227253-20210701153235.patch</filename>
            <type>text/plain</type>
            <size>38798</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJiNjE3NWNjZGMwOGI0MTlmNGU2NGJm
OWUxYmJiNDk2ZTQ5OWViYWIuLjA0ODdhNmQ2YjE3NTE2ODZjZGQ4NTU4MWRmNzdiNDg5NzA3ZDRi
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDctMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGUgcmVsYXkgZm9yIFVEUCBzb2NrZXRzIHdo
ZW4gbm90IG5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3MjUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTkxMjE1ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhh
dmUuaDoKKyAgICAgICAgQWRkIGEgbWFjcm8gZm9yIG5ldyBOVyBtZXRob2RzLgorCiAyMDIxLTA3
LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYTc4YTkzNTVhYTU2OWQyN2Q5ZGNiYTRhMDkzYTdiYzg5ZTIyZDQ4NS4uZjM2M2RiZGFiZDlk
Yjk1MTZkYzc3NzFhZDM2YzI5YjM1OTM3NmE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVuIG5vdCBuZWVkZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6c2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRDb25maWd1
cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjpydGNTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKwogMjAyMS0wNy0wMSAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMjc4MDYyKTogW05pY29zaWFdIFRocmVhZGVkIHJlbmRlcmluZyBpcyBicm9rZW4gc2luY2Ug
cjI3ODA2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiNzE0YThiYTU0ZDJlOWNlYTVjN2IxNDE3ZDZmNDQ4OTk4ZjY0
MmFiLi42ZDhkMThiZTg5ZmQ1YmJjMjQxNDIwODgzYTMyZjgyNWU0MWEyNGMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVuIG5vdCBu
ZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6Y3Jl
YXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29h
OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVj
dGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0
aW9uczo6Y3JlYXRlTldDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6UlRD
U29ja2V0RmFjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0
ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVT
b2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKwogMjAyMS0wNy0wMSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNaWdyYXRlIFdlYlJU
QyBVRFAgc29ja2V0IGhhbmRsaW5nIHRvIE5XIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA2
ZTExMTMxNDZhYzAyNDk4ZDViNmU5MmU0NTc0OGVhMzdmMDBmOTk4Li5kYmI3NWVjODkwNDc5Nzkz
YWFmNWE2MTFiYWZhZTAxMTFiYWUyYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtNTQ2LDYg
KzU0NiwxMCBAQAogI2RlZmluZSBIQVZFX05TVVJMU0VTU0lPTl9XRUJTT0NLRVQgMQogI2VuZGlm
CiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEyMDAwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDE1MDAwMCkKKyNkZWZpbmUgSEFWRV9OV1BBUkFNRVRFUlNfVFJB
Q0tFUl9BUEkgMQorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkgJiYgIShQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApICYmICFQTEFU
Rk9STShNQUNDQVRBTFlTVCkKICNkZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJW
QVRJT05fTEVWRUwgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCAzMzY5NzYzOWUw
YmM1MGI2OWU4OGY4ZmM4N2M4Y2VjYTQ0MDc5NzY2Li5jMDIzNDJiZmRkODY1MDE1NTUyOGUwZjE1
OTVjNTc0M2E2MjNmY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEyOSw3ICsxMjksNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0
cmluZyYgYWN0aW9uKSA9IDA7CiAKICAgICB2b2lkIG5ld0lDRUNhbmRpZGF0ZShTdHJpbmcmJiBz
ZHAsIFN0cmluZyYmIG1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCwgU3RyaW5nJiYg
c2VydmVyVVJMKTsKLSAgICB2b2lkIGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwogICAgIHZvaWQg
ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlS
b3RhdGlvbkZvck91dGdvaW5nVmlkZW9Tb3VyY2VzKCkgeyB9CkBAIC0xODEsNiArMTgxLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHJlc3VtZSgpIHsgfQogCisgICAgYm9vbCBzaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzOyB9OworCiBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4m
JiwgU3RyaW5nJiYgdXJsKTsKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ3ZDFiMjQz
ZmM3OGU5YzVkYTBiZWQxN2MyOWRjNjI5ZTU0Zjg1OTguLmYzM2M0Mzc1YjU2MzYzNTJiNTFjYWNj
MGY1NzMzODg5ZWRmYThhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwCkBAIC05NCw3ICs5NCwxMSBAQCBib29sIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2VicnRjOgogICAg
IGlmICghbV9iYWNrZW5kKSB7CiAgICAgICAgIGlmICghbV9ydGNTb2NrZXRGYWN0b3J5KSB7CiAg
ICAgICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0g
ICAgICAgICAgICBtX3J0Y1NvY2tldEZhY3RvcnkgPSBjbGllbnQuY3JlYXRlU29ja2V0RmFjdG9y
eShkb2N1bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsKKyAgICAgICAgICAgIFJlZ2lz
dHJhYmxlRG9tYWluIGRvbWFpbiB7IGRvY3VtZW50LnVybCgpIH07CisgICAgICAgICAgICBib29s
IGlzRmlyc3RQYXJ0eSA9IGRvbWFpbiA9PSBSZWdpc3RyYWJsZURvbWFpbihkb2N1bWVudC5maXJz
dFBhcnR5Rm9yQ29va2llcygpKTsKKyAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeSA9IGNs
aWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3VtZW50LnVzZXJBZ2VudChkb2N1bWVudC51cmwo
KSksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsKKyAgICAgICAgICAgIGlmICghbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcygpKQorICAgICAg
ICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeS0+ZGlzYWJsZVJlbGF5KCk7CiAgICAgICAgIH0K
ICAgICAgICAgbV9iYWNrZW5kID0gY2xpZW50LmNyZWF0ZVBlZXJDb25uZWN0aW9uKCp0aGlzLCBt
X3J0Y1NvY2tldEZhY3RvcnkuZ2V0KCksIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogICAgICAg
ICByZXR1cm4gISFtX2JhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBv
aW50LmgKaW5kZXggMTc2ZTdlY2Q4MjUxNTc2ZWE2N2MxNDk5MDcyMzljMzdjNjRmYjJhYS4uMTFl
NTc4NjhiMjQyOWY5NzE5ZjM3MjlmMzcwZjEzODJkNzZmNmM5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTE5LDYgKzExOSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CisgICAgTGliV2ViUlRDUHJv
dmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSogcnRjU29ja2V0RmFjdG9yeSgpIHsgcmV0
dXJuIG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIExpYldlYlJU
Q01lZGlhRW5kcG9pbnQoTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgTGliV2ViUlRD
UHJvdmlkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwCmluZGV4IGNiYmU2ZDcxNjk2OTg1ZmQzMGNiMmU5MzkyNzQ5MzgyZjc2
NDlkZGUuLmRhNWZjM2ZiM2E2MTUwMDAwYWVjOTQ5OTIxODNiZDJiNWU4MmQzNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApA
QCAtMTAyLDYgKzEwMiwxMyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
cmVzdW1lKCkKICAgICBtX2VuZHBvaW50LT5yZXN1bWUoKTsKIH0KIAordm9pZCBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQorewor
ICAgIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygp
OworICAgIGlmIChhdXRvKiBmYWN0b3J5ID0gbV9lbmRwb2ludC0+cnRjU29ja2V0RmFjdG9yeSgp
KQorICAgICAgICBmYWN0b3J5LT5kaXNhYmxlUmVsYXkoKTsKK30KKwogc3RhdGljIGlubGluZSB3
ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpCdW5kbGVQb2xpY3kgYnVuZGxlUG9saWN5
ZnJvbUNvbmZpZ3VyYXRpb24oY29uc3QgTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24mIGNvbmZp
Z3VyYXRpb24pCiB7CiAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApp
bmRleCBiZjMwODNhN2VhOGE3YTc3OWRkY2I3NjdhNjM5OGJkNDE1MzhkNGYwLi5mOWQxMjM3NmNk
MTkzMzIxN2NlMWMyMGJjMjlkZDc1MGVkMGZlZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApAQCAtMTEwLDYgKzExMCw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHN1c3BlbmQoKSBmaW5hbDsKICAgICB2b2lkIHJlc3VtZSgpIGZp
bmFsOworICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIGZpbmFsOwogCiAg
ICAgUmVmPExpYldlYlJUQ01lZGlhRW5kcG9pbnQ+IG1fZW5kcG9pbnQ7CiAgICAgYm9vbCBtX2lz
TG9jYWxEZXNjcmlwdGlvblNldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5oCmluZGV4IDA4YTI5NTY4ZTlhNmViYmJhYzlkODU1ZjgyMzFiMTU2NmJiODJjOTMuLjE4
NjI3ZWU1N2Y3NThhMDQ3MjJkMTYxNmYwZjg3NjI4NDM0MTE1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFBlZXJDb25uZWN0aW9u
RmFjdG9yeUludGVyZmFjZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGliV2ViUlRD
QXVkaW9Nb2R1bGU7CitjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIHN0cnVjdCBQZWVyQ29ubmVj
dGlvbkZhY3RvcnlBbmRUaHJlYWRzOwogc3RydWN0IFJUQ1J0cENhcGFiaWxpdGllczsKIApAQCAt
MTM5LDggKzE0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+U3VzcGVuZGFibGVTb2Nr
ZXRGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpIHsg
fTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIHsgfTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRpc2FibGVSZWxheSgpIHsgfTsKICAgICB9OwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPFN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcm
JiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZhY3Rvcnko
U3RyaW5nJiYgLyogdXNlckFnZW50ICovLCBib29sIC8qIGlzRmlyc3RQYXJ0eSAqLywgUmVnaXN0
cmFibGVEb21haW4mJikgeyByZXR1cm4gbnVsbHB0cjsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgTGli
V2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRleCBmNzJm
MmNmZGNmMmNiZDYwNGJjNGNkNTA3OTJiOWQ3YmY0YTdhMzhhLi5lZjc4NDAyNDBjMjkwNGQyZDZi
NTRmMWZjMTkzY2M4ZWQyZWZjMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTEzMiwxMSAr
MTMyLDExIEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6CiAgICAgYWRkU29ja2V0KGlkZW50aWZp
ZXIsIG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywg
V1RGTW92ZShzb2NrZXQpLCB0eXBlLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAKLXZvaWQg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNz
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQordm9pZCBOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1p
blBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlE
aXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCiB7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGxhdGZvcm1VRFBTb2NrZXRzRW5hYmxlZCkgewotICAg
ICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVE
UFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgYWRkcmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9y
dCwgbV9pcGNDb25uZWN0aW9uLmNvcHlSZWYoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8gc29ja2V0
ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwg
KnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQsIG1faXBjQ29ubmVjdGlvbi5j
b3B5UmVmKCksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBXVEZNb3ZlKGRvbWFpbikp
KSB7CiAgICAgICAgICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRleCA1NTE3
MTljNWZjOGU2ZDUzZTdkZmViNDZiODJkNjY0YjI5ZDEyNjgxLi5iMjk4NWJhZTk0YjZlNGYzZWQx
MzEzYzNlODI0YzI4NTcwY2RjYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtNTIsNiArNTIsNyBA
QCBzdHJ1Y3QgUGFja2V0T3B0aW9uczsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
UmVnaXN0cmFibGVEb21haW47CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9CiAKQEAgLTEwNyw3ICsx
MDgsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMo
KTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWlu
dDE2X3QpOworICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwg
dWludDE2X3QsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJik7CiAgICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBTdHJpbmcmJiB1
c2VyQWdlbnQsIGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoV2ViQ29yZTo6
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CiAgICAgdm9pZCB3
cmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlv
blNvY2tldElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmlu
ZGV4IGJmZGRkYTc5OTgzNmE0NTBkOGI1OTkyZDk1MTgyNTE1OGM2MzFjNWIuLjE5NTQwOTZhYjE1
NjFhN2E3ZmRmNWM1MGUzYTMwMzI0ODY0NmUzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
bWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiBtZXNz
YWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewotICAgIENyZWF0ZVVEUFNvY2tldChXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90
IG1heFBvcnQpCisgICAgQ3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxv
Y2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0Zp
cnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biBkb21haW4pCiAgICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50
IG9wdGlvbnMpCiAgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90
ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogICAgIFdyYXBOZXdUQ1BD
b25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKaW5kZXggN2E3NTEyOWJmZGUyZTY3
YjFmYjJmYjAwNTg5ZTlmMjViMDUxM2M0Ny4uMDE2MjBhMWZlMzJkN2Q2ZDczYjBiNjQxMTJkZWFk
ZjUzOGVhZDVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKQEAgLTU5LDkgKzU5LDkg
QEAgY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM7CiBjbGFzcyBOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1JUQ1Byb3ZpZGVyOjpT
b2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IGNyZWF0ZVVEUFNv
Y2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlk
ZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZf
dCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVVRFBTb2NrZXQoV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURp
c2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0gICAgTmV0d29y
a1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5l
dHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYpOworICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGlzRmlyc3RQYXJ0eSwg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7
CiAgICAgfk5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1VEUFNvY2tldENvY29hLm1tCmluZGV4IDdhYmI2OTY1OWM3OTJlZjQwZmVjMDVkOTNjMmNkYjk2
MGFiMDEwN2QuLmIwNzJiN2JkYzgyZTM4ZDkzZGM3ODIwYjMyODExZTQ4NDExZWIwNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBT
b2NrZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW0KQEAgLTMxLDMxICszMSw0NiBAQAogI2luY2x1ZGUg
IkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMaWJXZWJSVENOZXR3b3JrTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTldQYXJhbWV0ZXJzU1BJLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1RV
Tk1lc3NhZ2VQYXJzaW5nLmg+CiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNpbmNs
dWRlIDx3dGYvQmxvY2tQdHIuaD4KKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAorI2lmIEhBVkUoTldQQVJBTUVURVJT
X1RSQUNLRVJfQVBJKQorU09GVF9MSU5LX0xJQlJBUlkobGlibmV0d29ya2V4dGVuc2lvbikKK1NP
RlRfTElOS19DTEFTUyhsaWJuZXR3b3JrZXh0ZW5zaW9uLCBORUhlbHBlclRyYWNrZXJEaXNwb3Np
dGlvbl90KQorU09GVF9MSU5LX0NMQVNTKGxpYm5ldHdvcmtleHRlbnNpb24sIE5FSGVscGVyVHJh
Y2tlckFwcEluZm9SZWYpCitTT0ZUX0xJTktfQ0xBU1MobGlibmV0d29ya2V4dGVuc2lvbiwgTkVI
ZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZikKK1NPRlRfTElOSyhsaWJuZXR3b3JrZXh0ZW5z
aW9uLCBORUhlbHBlclRyYWNrZXJHZXREaXNwb3NpdGlvbiwgTkVIZWxwZXJUcmFja2VyRGlzcG9z
aXRpb25fdCosIChORUhlbHBlclRyYWNrZXJBcHBJbmZvUmVmICphcHBfaW5mb19yZWYsIENGQXJy
YXlSZWYgZG9tYWlucywgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZiAqdHJhY2tlckRv
bWFpbkNvbnRleHRSZWYsIENGSW5kZXggKnRyYWNrZXJEb21haW5JbmRleCksIChhcHBfaW5mb19y
ZWYsIGRvbWFpbnMsIHRyYWNrZXJEb21haW5Db250ZXh0UmVmLCB0cmFja2VyRG9tYWluSW5kZXgp
KQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5l
Y3Rpb25zPiBjcmVhdGUoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHByb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhpZGVudGlm
aWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSkpOyB9CisgICAgc3Rh
dGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3JlYXRlKFdlYkNv
cmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3Zp
ZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVs
YXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhp
ZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwgaXNGaXJz
dFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpOyB9CiAKICAgICB2b2lkIGNsb3NlKCk7
CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKTsKICAgICB2b2lkIHNl
bmRUbyhjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBj
b25zdCBydGM6OlBhY2tldE9wdGlvbnMmKTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
LCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmKTsKKyAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9u
cyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXIm
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29s
IGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJik7CiAKICAgICBSZXRhaW5QdHI8bndfY29ubmVjdGlvbl90PiBjcmVhdGVO
V0Nvbm5lY3Rpb24oY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzZXR1cE5X
Q29ubmVjdGlvbihud19jb25uZWN0aW9uX3QsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwor
ICAgIHZvaWQgY29uZmlndXJlUGFyYW1ldGVycyhud19wYXJhbWV0ZXJzX3QsIG53X2lwX3ZlcnNp
b25fdCk7CiAKICAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgYm9vbCBt
X2lzRmlyc3RQYXJ0eSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzS25vd25UcmFja2VyIHsgZmFs
c2UgfTsKKyAgICBib29sIG1fc2hvdWxkQnlwYXNzUmVsYXkgeyBmYWxzZSB9OwogICAgIHJ0Yzo6
U29ja2V0QWRkcmVzcyBtX2FkZHJlc3M7CiAgICAgUmV0YWluUHRyPG53X2xpc3RlbmVyX3Q+IG1f
bndMaXN0ZW5lcjsKICAgICBMb2NrIG1fbndDb25uZWN0aW9uc0xvY2s7CkBAIC03MywxNiArODgs
MTUgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgdWRwU29ja2V0UXVldWUoKQogICAgIHJldHVy
biBxdWV1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0
PiBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRj
UHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQorc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmly
c3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiBkb21haW4pCiB7Ci0gICAgLy8gRklYTUU6IERlY2lkZSBob3cgdG8gdXNlIG1pblBv
cnQvbWF4UG9ydC4KLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24p
KTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E+KGlkZW50
aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0
UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKTsKIH0KIAotTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbikKK05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0
d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBh
cnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpbikKICAgICA6IG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIpCiAgICAgLCBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBh
ZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSkKKyAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1By
b3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHksIGlzUmVs
YXlEaXNhYmxlZCwgZG9tYWluKSkKIHsKIH0KIApAQCAtMTE5LDkgKzEzMywyNCBAQCBzdGF0aWMg
cnRjOjpTb2NrZXRBZGRyZXNzIHNvY2tldEFkZHJlc3NGcm9tSW5jb21pbmdDb25uZWN0aW9uKG53
X2Nvbm5lY3Rpb25fdCBjbwogICAgIHJldHVybiBydGM6OlNvY2tldEFkZHJlc3MgeyBud19lbmRw
b2ludF9nZXRfaG9zdG5hbWUoZW5kcG9pbnQuZ2V0KCkpLCBud19lbmRwb2ludF9nZXRfcG9ydChl
bmRwb2ludC5nZXQoKSkgfTsKIH0KIAotTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlv
bnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92
aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCitzdGF0aWMgYm9vbCBpc0tub3duVHJhY2tlcihjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQoreworI2lmIEhBVkUoTldQQVJBTUVURVJT
X1RSQUNLRVJfQVBJKQorICAgIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmRvbWFpbnMgPSBAW2RvbWFp
bi5zdHJpbmcoKV07CisgICAgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZiAqY29udGV4
dCA9IG5pbDsKKyAgICBDRkluZGV4IGluZGV4ID0gMDsKKyAgICByZXR1cm4gISFORUhlbHBlclRy
YWNrZXJHZXREaXNwb3NpdGlvbihudWxscHRyLCAoQ0ZBcnJheVJlZilkb21haW5zLCBjb250ZXh0
LCAmaW5kZXgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworTmV0d29y
a1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNv
bm5lY3Rpb25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
TmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJz
dFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mIGRvbWFpbikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9j
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lzRmlyc3RQYXJ0eShpc0Zp
cnN0UGFydHkpCisgICAgLCBtX2lzS25vd25UcmFja2VyKGlzS25vd25UcmFja2VyKGRvbWFpbikp
CisgICAgLCBtX3Nob3VsZEJ5cGFzc1JlbGF5KGlzUmVsYXlEaXNhYmxlZCkKIHsKICAgICBhdXRv
IHBhcmFtZXRlcnMgPSBhZG9wdE5TKG53X3BhcmFtZXRlcnNfY3JlYXRlX3NlY3VyZV91ZHAoTldf
UEFSQU1FVEVSU19ESVNBQkxFX1BST1RPQ09MLCBOV19QQVJBTUVURVJTX0RFRkFVTFRfQ09ORklH
VVJBVElPTikpOwogICAgIHsKQEAgLTEzMiwxMSArMTYxLDcgQEAgTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdl
YkNvcmUKICAgICAgICAgbV9hZGRyZXNzID0geyBud19lbmRwb2ludF9nZXRfaG9zdG5hbWUobG9j
YWxFbmRwb2ludC5nZXQoKSksIG53X2VuZHBvaW50X2dldF9wb3J0KGxvY2FsRW5kcG9pbnQuZ2V0
KCkpIH07CiAgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X2xvY2FsX2VuZHBvaW50KHBhcmFtZXRl
cnMuZ2V0KCksIGxvY2FsRW5kcG9pbnQuZ2V0KCkpOwogICAgIH0KLSAgICB7Ci0gICAgICAgIGF1
dG8gcHJvdG9jb2xTdGFjayA9IGFkb3B0TlMobndfcGFyYW1ldGVyc19jb3B5X2RlZmF1bHRfcHJv
dG9jb2xfc3RhY2socGFyYW1ldGVycy5nZXQoKSkpOwotICAgICAgICBhdXRvIG9wdGlvbnMgPSBh
ZG9wdE5TKG53X3Byb3RvY29sX3N0YWNrX2NvcHlfaW50ZXJuZXRfcHJvdG9jb2wocHJvdG9jb2xT
dGFjay5nZXQoKSkpOwotICAgICAgICBud19pcF9vcHRpb25zX3NldF92ZXJzaW9uKG9wdGlvbnMu
Z2V0KCksIGFkZHJlc3MuZmFtaWx5KCkgPT0gQUZfSU5FVCA/IG53X2lwX3ZlcnNpb25fNCA6IG53
X2lwX3ZlcnNpb25fNik7Ci0gICAgfQorICAgIGNvbmZpZ3VyZVBhcmFtZXRlcnMocGFyYW1ldGVy
cy5nZXQoKSwgYWRkcmVzcy5mYW1pbHkoKSA9PSBBRl9JTkVUID8gbndfaXBfdmVyc2lvbl80IDog
bndfaXBfdmVyc2lvbl82KTsKIAogICAgIG1fbndMaXN0ZW5lciA9IGFkb3B0TlMobndfbGlzdGVu
ZXJfY3JlYXRlKHBhcmFtZXRlcnMuZ2V0KCkpKTsKICAgICBud19saXN0ZW5lcl9zZXRfcXVldWUo
bV9ud0xpc3RlbmVyLmdldCgpLCB1ZHBTb2NrZXRRdWV1ZSgpKTsKQEAgLTE3NSw2ICsyMDAsMjAg
QEAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2Nr
ZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmUKICAgICBud19saXN0ZW5lcl9zdGFydChtX253TGlz
dGVuZXIuZ2V0KCkpOwogfQogCit2b2lkIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rp
b25zOjpjb25maWd1cmVQYXJhbWV0ZXJzKG53X3BhcmFtZXRlcnNfdCBwYXJhbWV0ZXJzLCBud19p
cF92ZXJzaW9uX3QgdmVyc2lvbikKK3sKKyAgICBhdXRvIHByb3RvY29sU3RhY2sgPSBhZG9wdE5T
KG53X3BhcmFtZXRlcnNfY29weV9kZWZhdWx0X3Byb3RvY29sX3N0YWNrKHBhcmFtZXRlcnMpKTsK
KyAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKG53X3Byb3RvY29sX3N0YWNrX2NvcHlfaW50ZXJu
ZXRfcHJvdG9jb2wocHJvdG9jb2xTdGFjay5nZXQoKSkpOworICAgIG53X2lwX29wdGlvbnNfc2V0
X3ZlcnNpb24ob3B0aW9ucy5nZXQoKSwgdmVyc2lvbik7CisKKyAgICBpZiAobV9zaG91bGRCeXBh
c3NSZWxheSkKKyAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfYWNjb3VudF9pZChwYXJhbWV0ZXJz
LCAiY29tLmFwcGxlLnNhZmFyaS5wZWVydG9wZWVyIik7CisjaWYgSEFWRShOV1BBUkFNRVRFUlNf
VFJBQ0tFUl9BUEkpCisgICAgbndfcGFyYW1ldGVyc19zZXRfaXNfdGhpcmRfcGFydHlfd2ViX2Nv
bnRlbnQocGFyYW1ldGVycywgbV9pc0ZpcnN0UGFydHkpOworICAgIG53X3BhcmFtZXRlcnNfc2V0
X2lzX2tub3duX3RyYWNrZXIocGFyYW1ldGVycywgbV9pc0tub3duVHJhY2tlcik7CisjZW5kaWYK
K30KKwogdm9pZCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y2xvc2UoKQog
ewogICAgIExvY2tlciBsb2NrZXIgeyBtX253Q29ubmVjdGlvbnNMb2NrIH07CkBAIC0yMjMsMTEg
KzI2Miw3IEBAIFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+IE5ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYUNvbm5lY3Rpb25zOjpjcmVhdGVOV0Nvbm5lY3RpCiAgICAgICAgIGF1dG8gbG9jYWxFbmRw
b2ludCA9IGFkb3B0TlMobndfZW5kcG9pbnRfY3JlYXRlX2hvc3QoaG9zdEFkZHJlc3MuY19zdHIo
KSwgU3RyaW5nOjpudW1iZXIobV9hZGRyZXNzLnBvcnQoKSkudXRmOCgpLmRhdGEoKSkpOwogICAg
ICAgICBud19wYXJhbWV0ZXJzX3NldF9sb2NhbF9lbmRwb2ludChwYXJhbWV0ZXJzLmdldCgpLCBs
b2NhbEVuZHBvaW50LmdldCgpKTsKICAgICB9Ci0gICAgewotICAgICAgICBhdXRvIHByb3RvY29s
U3RhY2sgPSBhZG9wdE5TKG53X3BhcmFtZXRlcnNfY29weV9kZWZhdWx0X3Byb3RvY29sX3N0YWNr
KHBhcmFtZXRlcnMuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBvcHRpb25zID0gYWRvcHROUyhud19w
cm90b2NvbF9zdGFja19jb3B5X2ludGVybmV0X3Byb3RvY29sKHByb3RvY29sU3RhY2suZ2V0KCkp
KTsKLSAgICAgICAgbndfaXBfb3B0aW9uc19zZXRfdmVyc2lvbihvcHRpb25zLmdldCgpLCByZW1v
dGVBZGRyZXNzLmZhbWlseSgpID09IEFGX0lORVQgPyBud19pcF92ZXJzaW9uXzQgOiBud19pcF92
ZXJzaW9uXzYpOwotICAgIH0KKyAgICBjb25maWd1cmVQYXJhbWV0ZXJzKHBhcmFtZXRlcnMuZ2V0
KCksIHJlbW90ZUFkZHJlc3MuZmFtaWx5KCkgPT0gQUZfSU5FVCA/IG53X2lwX3ZlcnNpb25fNCA6
IG53X2lwX3ZlcnNpb25fNik7CiAKICAgICBhdXRvIHJlbW90ZUhvc3RBZGRyZXNzID0gcmVtb3Rl
QWRkcmVzcy5pcGFkZHIoKS5Ub1N0cmluZygpOwogICAgIGlmIChyZW1vdGVBZGRyZXNzLmlwYWRk
cigpLklzTmlsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2Nv
YS9OV1BhcmFtZXRlcnNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05X
UGFyYW1ldGVyc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0NTI4MWEyZjYxNzQ4NTJkZWJlNjhhODkzMGVk
NzUzOGI3YTM4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9OV1BhcmFtZXRlcnNTUEkuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPG53L3ByaXZhdGUuaD4KKwor
I2Vsc2UKKworI2ltcG9ydCA8bncvcGFyYW1ldGVycy5oPgorCitXVEZfRVhURVJOX0NfQkVHSU4K
Kwordm9pZCBud19wYXJhbWV0ZXJzX3NldF9hY2NvdW50X2lkKG53X3BhcmFtZXRlcnNfdCwgY29u
c3QgY2hhciAqIGFjY291bnRfaWQpOworCisjaWYgSEFWRShOV1BBUkFNRVRFUlNfVFJBQ0tFUl9B
UEkpCit2b2lkIG53X3BhcmFtZXRlcnNfc2V0X2lzX3RoaXJkX3BhcnR5X3dlYl9jb250ZW50KG53
X3BhcmFtZXRlcnNfdCwgYm9vbCBpc190aGlyZF9wYXJ0eV93ZWJfY29udGVudCk7Cit2b2lkIG53
X3BhcmFtZXRlcnNfc2V0X2lzX2tub3duX3RyYWNrZXIobndfcGFyYW1ldGVyc190LCBib29sIGlz
X2tub3duX3RyYWNrZXIpOworI2VuZGlmIC8vIEhBVkUoTldQQVJBTUVURVJTX1RSQUNLRVJfQVBJ
KQorCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZWFlMGZlZDkwOWE1MGE1OWEwYzNmNDMzNjlhNjg0MmZjYWY3ZDUwMC4uOThjZTRkODM5ZTQw
OGMyY2ZlMTJjOGVmNzg4Y2Q0MTZhMjYwZGI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NDUsNiArOTQ1LDcgQEAKIAkJNDFEMTI5
REExRjNEMTAxODAwRDE1RTQ3IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQxMjlEOTFGM0QxMDE0MDBE
MTVFNDcgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1OTYxRTNE
NkUyMjAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8qIE5l
dHdvcmtSVENQcm92aWRlci5oICovOyB9OwogCQk0MURDNDU5QzFFM0RCQjI4MDBCMTFGNTEgLyog
TGliV2ViUlRDU29ja2V0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MURDNDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0
Q2xpZW50LmggKi87IH07CisJCTQxREQ3MkFCMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1BhcmFtZXRl
cnNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
REQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAqLzsgfTsKIAkJNDFE
RTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRG
NjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovOyB9OwogCQk0MUUwQTdD
QjIzQjY0NUNEMDA1NjEwNjAgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0Ug
LyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgx
QyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAv
KiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTM4NDMsNiAr
Mzg0NCw3IEBACiAJCTQxREM0NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENSZXNvbHZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5j
cHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxREQ3MkE2MjY3QjhDMzAwMEE5MEM3MSAvKiBOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREQ3MkE3MjY3QjhD
MzEwMEE5MEM3MSAvKiBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTldQYXJhbWV0ZXJzU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2Rl
Y3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2Vi
UlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGliV2ViUlRDQ29kZWNzUHJveHkubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTBBN0M4MjNCNjM5Nzkw
MDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NzkzOCw2ICs3OTQwLDcgQEAKIAkJCQk1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxB
dXRoZW50aWNhdGlvblNQSS5oICovLAogCQkJCTU3QjgyNjQwMjMwNEVCM0UwMEI3MkVCMCAvKiBO
ZWFyRmllbGRTUEkuaCAqLywKIAkJCQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZv
Y2F0aW9uU1BJLmggKi8sCisJCQkJNDFERDcyQUEyNjgyMTY3MzAwQTkwQzcxIC8qIE5XUGFyYW1l
dGVyc1NQSS5oICovLAogCQkJCTVDQjZBRTQzMjYwOTc5OUMwMEI2RUQ1QSAvKiBSZWFzb25TUEku
aCAqLywKIAkJCQkwRTk3RDc0QzIwMEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmgg
Ki8sCiAJCQkJNDQ4QUMyNEQyNjcxMzVBNjAwQjI4OTIxIC8qIFN5bmFwc2VTUEkuaCAqLywKQEAg
LTEyMTY0LDYgKzEyMTY3LDcgQEAKIAkJCQkxQzIwOTM2MDIyMzE4Q0IwMDAwMjZBMzkgLyogTlNB
dHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzIxODQwMjIyMzM4NzI4MDBC
QUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Mzc1NEQ1NDUxQjNBMjlGRDAwM0E0QzdGIC8qIE5TSW52b2NhdGlvblNQSS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDFERDcyQUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XUGFyYW1ldGVyc1NQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM4QUNBMTMxNjY3MEQ4OTAwNEMxOTQxIC8qIE9iakNPYmplY3RH
cmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NGNDdGRkIxNzI3NUM1NzAwOEFDQjkxIC8qIFBh
Z2VCYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkVEQUE2MTExMjcxQzYwMEU3Njc4QiAv
KiBQYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmlu
ZGV4IDYyNjQzMTc5YmNhYjU5NjJlY2M4OGMxMGNlZDNkZGI4OTgyNWM4NDEuLjUyMjJiYjlkMDEy
YjE2NTNiMDdmYjA5ZDRmMWY3ODdiNmE3ZGU4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNs
dWRlIDx3ZWJydGMvYXBpL2FzeW5jX3Jlc29sdmVyX2ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJy
dGMvcGMvcGVlcl9jb25uZWN0aW9uX2ZhY3RvcnkuaD4KQEAgLTg3LDcgKzg4LDcgQEAgdm9pZCBM
aWJXZWJSVENQcm92aWRlcjo6cmVnaXN0ZXJNRE5TTmFtZShEb2N1bWVudElkZW50aWZpZXIgZG9j
dW1lbnRJZGVudGlmaWVyLAogY2xhc3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBM
aWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSVENTb2NrZXRGYWN0b3J5
KFN0cmluZyYmIHVzZXJBZ2VudCk7CisgICAgUlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2Vy
QWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmKTsKIAogcHJpdmF0
ZToKICAgICAvLyBTdXNwZW5kYWJsZVNvY2tldEZhY3RvcnkKQEAgLTk3LDE5ICs5OCwyNSBAQCBw
cml2YXRlOgogICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRlQXN5bmNSZXNv
bHZlcigpIGZpbmFsOwogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1l
KCkgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlUmVsYXkoKSBmaW5hbCB7IG1faXNSZWxheURpc2Fi
bGVkID0gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKKyAgICBi
b29sIG1faXNGaXJzdFBhcnR5IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWxheURpc2FibGVk
IHsgZmFsc2UgfTsKKyAgICBSZWdpc3RyYWJsZURvbWFpbiBtX2RvbWFpbjsKIH07CiAKLVJUQ1Nv
Y2tldEZhY3Rvcnk6OlJUQ1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50KQorUlRDU29j
a2V0RmFjdG9yeTo6UlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNG
aXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKICAgICA6IG1fdXNlckFnZW50
KFdURk1vdmUodXNlckFnZW50KSkKKyAgICAsIG1faXNGaXJzdFBhcnR5KGlzRmlyc3RQYXJ0eSkK
KyAgICAsIG1fZG9tYWluKFdURk1vdmUoZG9tYWluKSkKIHsKIH0KIAogcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkK
IHsKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygp
LnNvY2tldEZhY3RvcnkoKS5jcmVhdGVVZHBTb2NrZXQodGhpcywgYWRkcmVzcywgbWluUG9ydCwg
bWF4UG9ydCk7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05l
dHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0KHRoaXMsIGFkZHJlc3MsIG1p
blBvcnQsIG1heFBvcnQsIG1faXNGaXJzdFBhcnR5LCBtX2lzUmVsYXlEaXNhYmxlZCwgbV9kb21h
aW4pOwogfQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVh
dGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKQEAgLTE1MCw5ICsx
NTcsOSBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVkTmV0d29ya1RocmVhZCgpCiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNldEFzQWN0aXZl
KCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVT
b2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeShTdHJp
bmcmJiB1c2VyQWdlbnQpCitzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3Bl
bmRhYmxlU29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldEZhY3Rv
cnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFibGVEb21h
aW4mJiBkb21haW4pCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8UlRDU29ja2V0RmFjdG9yeT4o
V1RGTW92ZSh1c2VyQWdlbnQpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0
b3J5PihXVEZNb3ZlKHVzZXJBZ2VudCksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsK
IH0KIAogUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IExpYldl
YlJUQ1Byb3ZpZGVyOjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMWQxNjZjMGFhNjc2MTRmMmM4NmMyM2UwYmJl
MGMyMjZiNjBkOTk1Yi4uNjA1OGU1NGMxNTM4OTQ4ZDhhNmI0NDM1MjdkNTNjMGQ4NzhhYmZmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIGV4
cGxpY2l0IExpYldlYlJUQ1Byb3ZpZGVyKFdlYlBhZ2UmKTsKIAogcHJpdmF0ZToKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5
KFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLykgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN1
c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1
c2VyQWdlbnQgKi8sIGJvb2wgLyogaXNGaXJzdFBhcnR5ICovLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmKSBmaW5hbDsKIAogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggNTMyMzNiZWY5ZWYxYjlmYjJhNWUzNzI2
N2QyYmNlNDFmZTM0ODRiMi4uYTM5MzliYzE0NWUwYjk4M2RiMThiNzlhZDdhNjJmZTY5NjY2Y2Iz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtODUsMTkgKzg1LDE5
IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZVNlcnZlclRjcFNvY2tldChjb25zdCB2b2lkCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7
CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQorcnRj
OjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29j
a2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFk
ZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBh
cnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpbikKIHsKICAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAgICBh
dXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc29ja2V0R3Jv
dXAsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJl
c3MoKSk7CiAKICAgICBpZiAobV9jb25uZWN0aW9uKQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KHNvY2tldC0+
aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0
LCBtYXhQb3J0KSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIGlzRmly
c3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKICAgICBlbHNlIHsKICAgICAg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW10gewogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgICAgIH0pOwotICAg
ICAgICBtX3BlbmRpbmdNZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5p
ZGVudGlmaWVyKCksIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3Mp
LCBtaW5Qb3J0LCBtYXhQb3J0XShhdXRvJiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICBjb25u
ZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0
KGlkZW50aWZpZXIsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpLCAwKTsKKyAgICAgICAgbV9w
ZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmll
cigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9y
dCwgbWF4UG9ydCwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbl0oYXV0byYg
Y29ubmVjdGlvbikgeworICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Q
b3J0LCBtYXhQb3J0LCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSwgMCk7
CiAgICAgICAgIH0pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5k
ZXggNjFiMGM3YTBmYmIyNGE2OWY5M2FiYjJiNDE0NmMwYzdhN2ZjY2M1MC4uNzFkMTI0ODI3YWIy
YTZlYTI5YjE4OTliZGMwNzQ0MmI0YjkxYmQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFj
dG9yeS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXQqIHNv
Y2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0
dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7IH0KIAogICAgIHZvaWQgZm9yU29ja2V0SW5H
cm91cChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgRnVuY3Rpb248dm9pZChMaWJXZWJS
VENTb2NrZXQmKT4mKTsKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBTb2Nr
ZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOworICAgIHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9v
bCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZl
clRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpOwog
ICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2
b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3Ms
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFn
ZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmKTsKICAgICBydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYs
IFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElk
ZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432695</attachid>
            <date>2021-07-01 08:11:05 -0700</date>
            <delta_ts>2021-07-01 08:45:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227253-20210701171103.patch</filename>
            <type>text/plain</type>
            <size>38807</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0YWYyOTBiYTdhNTMzOTkzMmRmOGQ1
MWMwZDI2NzBjNDRhNGIyNjkuLmRmOTIwMjQ5NzFhNTIxODgwODczYzk4OTU3YzBiMmU0ZDYzNWVj
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDctMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGUgcmVsYXkgZm9yIFVEUCBzb2NrZXRzIHdo
ZW4gbm90IG5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3MjUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTkxMjE1ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhh
dmUuaDoKKyAgICAgICAgQWRkIGEgbWFjcm8gZm9yIG5ldyBOVyBtZXRob2RzLgorCiAyMDIxLTA2
LTI4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZTM3OTU0ODZhY2QxOTkzN2IyMzZkYjlkN2UzNDIyOTFjODQxZjhkMy4uYmZiNTkzNDRjNDM3
Njg2ZGE3MzBjNGEzODVhNTY0MDZmNDhhZTRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVuIG5vdCBuZWVkZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6c2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRDb25maWd1
cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjpydGNTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKwogMjAyMS0wNy0wMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVhZGFibGVTdHJlYW0uZ2V0
UmVhZGVyIGRvIG5vdCB0aHJvdyBhIHByb3BlciBleGNlcHRpb24gd2hlbiBwYXJhbWV0ZXIgaXMg
b2Ygd3JvbmcgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjZTc3YWZjOTk1YWMwMmI3OTA5YTYyOWQyOWMzMWJk
NDM0NDcwZjcxLi43YTY2N2FiOGZiODZhZjhkMTQxNjNmNzI5YmJjNGRlZDZkZmE0ZjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVu
IG5vdCBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVj
dGlvbnM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YTo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Q29ubmVjdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FD
b25uZWN0aW9uczo6Y3JlYXRlTldDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9y
eTo6UlRDU29ja2V0RmFjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6
OkNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpj
cmVhdGVTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
U29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKwogMjAyMS0wNi0yOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNaWdyYXRl
IFdlYlJUQyBVRFAgc29ja2V0IGhhbmRsaW5nIHRvIE5XIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApp
bmRleCBlYzNiNGYyNmJlNmVjNGMxODM3OTJhODdlYzZmZWRiOTVjZDY0NDdiLi43ZWYyMzM4Y2Vm
ODliNGFmNGE1ZTkxZjMyNzBlNTI4MDA3MjNmNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAt
NTQ2LDYgKzU0NiwxMCBAQAogI2RlZmluZSBIQVZFX05TVVJMU0VTU0lPTl9XRUJTT0NLRVQgMQog
I2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEyMDAwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMCkKKyNkZWZpbmUgSEFWRV9OV1BBUkFNRVRF
UlNfVFJBQ0tFUl9BUEkgMQorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkgJiYgIShQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApICYm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNkZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9D
T05TRVJWQVRJT05fTEVWRUwgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCAzMzY5
NzYzOWUwYmM1MGI2OWU4OGY4ZmM4N2M4Y2VjYTQ0MDc5NzY2Li5jMDIzNDJiZmRkODY1MDE1NTUy
OGUwZjE1OTVjNTc0M2E2MjNmY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEyOSw3ICsx
MjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNv
bnN0IFN0cmluZyYgYWN0aW9uKSA9IDA7CiAKICAgICB2b2lkIG5ld0lDRUNhbmRpZGF0ZShTdHJp
bmcmJiBzZHAsIFN0cmluZyYmIG1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCwgU3Ry
aW5nJiYgc2VydmVyVVJMKTsKLSAgICB2b2lkIGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwogICAg
IHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlSb3RhdGlvbkZvck91dGdvaW5nVmlkZW9Tb3VyY2VzKCkgeyB9CkBAIC0xODEsNiArMTgx
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZSgpIHsgfQogCisgICAgYm9vbCBzaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVz
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzOyB9OworCiBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRp
ZGF0ZT4mJiwgU3RyaW5nJiYgdXJsKTsKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ3
ZDFiMjQzZmM3OGU5YzVkYTBiZWQxN2MyOWRjNjI5ZTU0Zjg1OTguLmYzM2M0Mzc1YjU2MzYzNTJi
NTFjYWNjMGY1NzMzODg5ZWRmYThhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuY3BwCkBAIC05NCw3ICs5NCwxMSBAQCBib29sIExpYldlYlJUQ01lZGlhRW5k
cG9pbnQ6OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2VicnRj
OgogICAgIGlmICghbV9iYWNrZW5kKSB7CiAgICAgICAgIGlmICghbV9ydGNTb2NrZXRGYWN0b3J5
KSB7CiAgICAgICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgICAgICAgICBtX3J0Y1NvY2tldEZhY3RvcnkgPSBjbGllbnQuY3JlYXRlU29ja2V0
RmFjdG9yeShkb2N1bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsKKyAgICAgICAgICAg
IFJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiB7IGRvY3VtZW50LnVybCgpIH07CisgICAgICAgICAg
ICBib29sIGlzRmlyc3RQYXJ0eSA9IGRvbWFpbiA9PSBSZWdpc3RyYWJsZURvbWFpbihkb2N1bWVu
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpKTsKKyAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9y
eSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3VtZW50LnVzZXJBZ2VudChkb2N1bWVu
dC51cmwoKSksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsKKyAgICAgICAgICAgIGlm
ICghbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcygpKQor
ICAgICAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeS0+ZGlzYWJsZVJlbGF5KCk7CiAgICAg
ICAgIH0KICAgICAgICAgbV9iYWNrZW5kID0gY2xpZW50LmNyZWF0ZVBlZXJDb25uZWN0aW9uKCp0
aGlzLCBtX3J0Y1NvY2tldEZhY3RvcnkuZ2V0KCksIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwog
ICAgICAgICByZXR1cm4gISFtX2JhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRp
YUVuZHBvaW50LmgKaW5kZXggMTc2ZTdlY2Q4MjUxNTc2ZWE2N2MxNDk5MDcyMzljMzdjNjRmYjJh
YS4uMTFlNTc4NjhiMjQyOWY5NzE5ZjM3MjlmMzcwZjEzODJkNzZmNmM5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTE5LDYgKzExOSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CisgICAgTGliV2Vi
UlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSogcnRjU29ja2V0RmFjdG9yeSgp
IHsgcmV0dXJuIG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIExp
YldlYlJUQ01lZGlhRW5kcG9pbnQoTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgTGli
V2ViUlRDUHJvdmlkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGNiYmU2ZDcxNjk2OTg1ZmQzMGNiMmU5MzkyNzQ5
MzgyZjc2NDlkZGUuLmRhNWZjM2ZiM2E2MTUwMDAwYWVjOTQ5OTIxODNiZDJiNWU4MmQzNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcApAQCAtMTAyLDYgKzEwMiwxMyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6cmVzdW1lKCkKICAgICBtX2VuZHBvaW50LT5yZXN1bWUoKTsKIH0KIAordm9pZCBMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KQoreworICAgIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZygpOworICAgIGlmIChhdXRvKiBmYWN0b3J5ID0gbV9lbmRwb2ludC0+cnRjU29ja2V0RmFj
dG9yeSgpKQorICAgICAgICBmYWN0b3J5LT5kaXNhYmxlUmVsYXkoKTsKK30KKwogc3RhdGljIGlu
bGluZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpCdW5kbGVQb2xpY3kgYnVuZGxl
UG9saWN5ZnJvbUNvbmZpZ3VyYXRpb24oY29uc3QgTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGlj
eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaAppbmRleCBiZjMwODNhN2VhOGE3YTc3OWRkY2I3NjdhNjM5OGJkNDE1MzhkNGYwLi5mOWQx
MjM3NmNkMTkzMzIxN2NlMWMyMGJjMjlkZDc1MGVkMGZlZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApAQCAtMTEwLDYgKzExMCw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN1c3BlbmQoKSBmaW5hbDsKICAgICB2b2lkIHJlc3Vt
ZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIGZpbmFs
OwogCiAgICAgUmVmPExpYldlYlJUQ01lZGlhRW5kcG9pbnQ+IG1fZW5kcG9pbnQ7CiAgICAgYm9v
bCBtX2lzTG9jYWxEZXNjcmlwdGlvblNldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oCmluZGV4IDA4YTI5NTY4ZTlhNmViYmJhYzlkODU1ZjgyMzFiMTU2NmJiODJj
OTMuLjE4NjI3ZWU1N2Y3NThhMDQ3MjJkMTYxNmYwZjg3NjI4NDM0MTE1YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFBlZXJDb25u
ZWN0aW9uRmFjdG9yeUludGVyZmFjZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGli
V2ViUlRDQXVkaW9Nb2R1bGU7CitjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIHN0cnVjdCBQZWVy
Q29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzOwogc3RydWN0IFJUQ1J0cENhcGFiaWxpdGllczsK
IApAQCAtMTM5LDggKzE0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+U3VzcGVuZGFi
bGVTb2NrZXRGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVu
ZCgpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIHsgfTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpc2FibGVSZWxheSgpIHsgfTsKICAgICB9OwotICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShT
dHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZh
Y3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovLCBib29sIC8qIGlzRmlyc3RQYXJ0eSAqLywg
UmVnaXN0cmFibGVEb21haW4mJikgeyByZXR1cm4gbnVsbHB0cjsgfQogCiBwcm90ZWN0ZWQ6CiAg
ICAgTGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRl
eCBmNzJmMmNmZGNmMmNiZDYwNGJjNGNkNTA3OTJiOWQ3YmY0YTdhMzhhLi5lZjc4NDAyNDBjMjkw
NGQyZDZiNTRmMWZjMTkzY2M4ZWQyZWZjMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTEz
MiwxMSArMTMyLDExIEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6CiAgICAgYWRkU29ja2V0KGlk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAq
dGhpcywgV1RGTW92ZShzb2NrZXQpLCB0eXBlLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAK
LXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQordm9pZCBOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlz
UmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCiB7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGxhdGZvcm1VRFBTb2NrZXRzRW5hYmxlZCkg
ewotICAgICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNy
ZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgYWRkcmVzcy52YWx1ZSwgbWluUG9ydCwg
bWF4UG9ydCwgbV9pcGNDb25uZWN0aW9uLmNvcHlSZWYoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8g
c29ja2V0ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBTb2NrZXQoaWRlbnRp
ZmllciwgKnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQsIG1faXBjQ29ubmVj
dGlvbi5jb3B5UmVmKCksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBXVEZNb3ZlKGRv
bWFpbikpKSB7CiAgICAgICAgICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2Nr
ZXQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRl
eCA1NTE3MTljNWZjOGU2ZDUzZTdkZmViNDZiODJkNjY0YjI5ZDEyNjgxLi5iMjk4NWJhZTk0YjZl
NGYzZWQxMzEzYzNlODI0YzI4NTcwY2RjYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtNTIsNiAr
NTIsNyBAQCBzdHJ1Y3QgUGFja2V0T3B0aW9uczsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgUmVnaXN0cmFibGVEb21haW47CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9CiAKQEAgLTEw
Nyw3ICsxMDgsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdG
b3JJUEMoKTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZf
dCwgdWludDE2X3QpOworICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50
MTZfdCwgdWludDE2X3QsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7CiAgICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBTdHJp
bmcmJiB1c2VyQWdlbnQsIGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CiAgICAg
dm9pZCB3cmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2Vz
LmluCmluZGV4IGJmZGRkYTc5OTgzNmE0NTBkOGI1OTkyZDk1MTgyNTE1OGM2MzFjNWIuLjE5NTQw
OTZhYjE1NjFhN2E3ZmRmNWM1MGUzYTMwMzI0ODY0NmUzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQog
CiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewotICAgIENyZWF0ZVVEUFNvY2tldChX
ZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9v
bCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBkb21haW4pCiAgICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9y
dCwgaW50IG9wdGlvbnMpCiAgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
IHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogICAgIFdyYXBO
ZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29j
a2V0SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKaW5kZXggN2E3NTEyOWJm
ZGUyZTY3YjFmYjJmYjAwNTg5ZTlmMjViMDUxM2M0Ny4uMDE2MjBhMWZlMzJkN2Q2ZDczYjBiNjQx
MTJkZWFkZjUzOGVhZDVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKQEAgLTU5LDkg
KzU5LDkgQEAgY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM7CiBjbGFz
cyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1JUQ1Byb3Zp
ZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IGNyZWF0
ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRD
UHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVVRFBTb2NrZXQo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNS
ZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0gICAg
TmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYpOworICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGlzRmlyc3RQ
YXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJik7CiAgICAgfk5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYSgpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VE
UFNvY2tldENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1VEUFNvY2tldENvY29hLm1tCmluZGV4IDdhYmI2OTY1OWM3OTJlZjQwZmVjMDVkOTNj
MmNkYjk2MGFiMDEwN2QuLmIwNzJiN2JkYzgyZTM4ZDkzZGM3ODIwYjMyODExZTQ4NDExZWIwNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENVRFBTb2NrZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW0KQEAgLTMxLDMxICszMSw0NiBAQAogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMaWJXZWJSVENOZXR3b3JrTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTldQYXJhbWV0ZXJzU1BJLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU1RVTk1lc3NhZ2VQYXJzaW5nLmg+CiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4K
ICNpbmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAorI2lmIEhBVkUoTldQQVJB
TUVURVJTX1RSQUNLRVJfQVBJKQorU09GVF9MSU5LX0xJQlJBUlkobGlibmV0d29ya2V4dGVuc2lv
bikKK1NPRlRfTElOS19DTEFTUyhsaWJuZXR3b3JrZXh0ZW5zaW9uLCBORUhlbHBlclRyYWNrZXJE
aXNwb3NpdGlvbl90KQorU09GVF9MSU5LX0NMQVNTKGxpYm5ldHdvcmtleHRlbnNpb24sIE5FSGVs
cGVyVHJhY2tlckFwcEluZm9SZWYpCitTT0ZUX0xJTktfQ0xBU1MobGlibmV0d29ya2V4dGVuc2lv
biwgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZikKK1NPRlRfTElOSyhsaWJuZXR3b3Jr
ZXh0ZW5zaW9uLCBORUhlbHBlclRyYWNrZXJHZXREaXNwb3NpdGlvbiwgTkVIZWxwZXJUcmFja2Vy
RGlzcG9zaXRpb25fdCosIChORUhlbHBlclRyYWNrZXJBcHBJbmZvUmVmICphcHBfaW5mb19yZWYs
IENGQXJyYXlSZWYgZG9tYWlucywgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZiAqdHJh
Y2tlckRvbWFpbkNvbnRleHRSZWYsIENGSW5kZXggKnRyYWNrZXJEb21haW5JbmRleCksIChhcHBf
aW5mb19yZWYsIGRvbWFpbnMsIHRyYWNrZXJEb21haW5Db250ZXh0UmVmLCB0cmFja2VyRG9tYWlu
SW5kZXgpKQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVj
dGlvbnM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YUNvbm5lY3Rpb25zPiBjcmVhdGUoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBp
ZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHByb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhp
ZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSkpOyB9Cisg
ICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3JlYXRl
KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JU
Q1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29s
IGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFp
bikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0
aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwg
aXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpOyB9CiAKICAgICB2b2lkIGNs
b3NlKCk7CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKTsKICAgICB2
b2lkIHNlbmRUbyhjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmLCBjb25zdCBydGM6OlBhY2tldE9wdGlvbnMmKTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25u
ZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJv
dmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAKICAgICBSZXRhaW5QdHI8bndfY29ubmVjdGlvbl90PiBj
cmVhdGVOV0Nvbm5lY3Rpb24oY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBz
ZXR1cE5XQ29ubmVjdGlvbihud19jb25uZWN0aW9uX3QsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYpOworICAgIHZvaWQgY29uZmlndXJlUGFyYW1ldGVycyhud19wYXJhbWV0ZXJzX3QsIG53X2lw
X3ZlcnNpb25fdCk7CiAKICAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAg
Ym9vbCBtX2lzRmlyc3RQYXJ0eSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzS25vd25UcmFja2Vy
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQnlwYXNzUmVsYXkgeyBmYWxzZSB9OwogICAg
IHJ0Yzo6U29ja2V0QWRkcmVzcyBtX2FkZHJlc3M7CiAgICAgUmV0YWluUHRyPG53X2xpc3RlbmVy
X3Q+IG1fbndMaXN0ZW5lcjsKICAgICBMb2NrIG1fbndDb25uZWN0aW9uc0xvY2s7CkBAIC03Mywx
NiArODgsMTUgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgdWRwU29ja2V0UXVldWUoKQogICAg
IHJldHVybiBxdWV1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6
U29ja2V0PiBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRl
ciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uKQorc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlk
ZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29s
IGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiBkb21haW4pCiB7Ci0gICAgLy8gRklYTUU6IERlY2lkZSBob3cgdG8gdXNl
IG1pblBvcnQvbWF4UG9ydC4KLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5l
Y3Rpb24pKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E+
KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBp
c0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKTsKIH0KIAotTmV0d29ya1JUQ1VE
UFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3Zp
ZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbikKK05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1VE
UFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNG
aXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIGRvbWFpbikKICAgICA6IG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3Zp
ZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSkKKyAgICAsIG1fbndDb25uZWN0aW9u
cyhOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIs
IHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHks
IGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSkKIHsKIH0KIApAQCAtMTE5LDkgKzEzMywyNCBAQCBz
dGF0aWMgcnRjOjpTb2NrZXRBZGRyZXNzIHNvY2tldEFkZHJlc3NGcm9tSW5jb21pbmdDb25uZWN0
aW9uKG53X2Nvbm5lY3Rpb25fdCBjbwogICAgIHJldHVybiBydGM6OlNvY2tldEFkZHJlc3MgeyBu
d19lbmRwb2ludF9nZXRfaG9zdG5hbWUoZW5kcG9pbnQuZ2V0KCkpLCBud19lbmRwb2ludF9nZXRf
cG9ydChlbmRwb2ludC5nZXQoKSkgfTsKIH0KIAotTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29u
bmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmU6Okxp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBy
dGNQcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCitzdGF0aWMgYm9vbCBpc0tub3duVHJhY2tlcihjb25z
dCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQoreworI2lmIEhBVkUoTldQQVJB
TUVURVJTX1RSQUNLRVJfQVBJKQorICAgIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmRvbWFpbnMgPSBA
W2RvbWFpbi5zdHJpbmcoKV07CisgICAgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZiAq
Y29udGV4dCA9IG5pbDsKKyAgICBDRkluZGV4IGluZGV4ID0gMDsKKyAgICByZXR1cm4gISFORUhl
bHBlclRyYWNrZXJHZXREaXNwb3NpdGlvbihudWxscHRyLCAoQ0ZBcnJheVJlZilkb21haW5zLCBj
b250ZXh0LCAmaW5kZXgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwor
TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYUNvbm5lY3Rpb25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wg
aXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mIGRvbWFpbikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAg
ICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lzRmlyc3RQYXJ0
eShpc0ZpcnN0UGFydHkpCisgICAgLCBtX2lzS25vd25UcmFja2VyKGlzS25vd25UcmFja2VyKGRv
bWFpbikpCisgICAgLCBtX3Nob3VsZEJ5cGFzc1JlbGF5KGlzUmVsYXlEaXNhYmxlZCkKIHsKICAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBhZG9wdE5TKG53X3BhcmFtZXRlcnNfY3JlYXRlX3NlY3VyZV91
ZHAoTldfUEFSQU1FVEVSU19ESVNBQkxFX1BST1RPQ09MLCBOV19QQVJBTUVURVJTX0RFRkFVTFRf
Q09ORklHVVJBVElPTikpOwogICAgIHsKQEAgLTEzMiwxMSArMTYxLDcgQEAgTmV0d29ya1JUQ1VE
UFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rp
b25zKFdlYkNvcmUKICAgICAgICAgbV9hZGRyZXNzID0geyBud19lbmRwb2ludF9nZXRfaG9zdG5h
bWUobG9jYWxFbmRwb2ludC5nZXQoKSksIG53X2VuZHBvaW50X2dldF9wb3J0KGxvY2FsRW5kcG9p
bnQuZ2V0KCkpIH07CiAgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X2xvY2FsX2VuZHBvaW50KHBh
cmFtZXRlcnMuZ2V0KCksIGxvY2FsRW5kcG9pbnQuZ2V0KCkpOwogICAgIH0KLSAgICB7Ci0gICAg
ICAgIGF1dG8gcHJvdG9jb2xTdGFjayA9IGFkb3B0TlMobndfcGFyYW1ldGVyc19jb3B5X2RlZmF1
bHRfcHJvdG9jb2xfc3RhY2socGFyYW1ldGVycy5nZXQoKSkpOwotICAgICAgICBhdXRvIG9wdGlv
bnMgPSBhZG9wdE5TKG53X3Byb3RvY29sX3N0YWNrX2NvcHlfaW50ZXJuZXRfcHJvdG9jb2wocHJv
dG9jb2xTdGFjay5nZXQoKSkpOwotICAgICAgICBud19pcF9vcHRpb25zX3NldF92ZXJzaW9uKG9w
dGlvbnMuZ2V0KCksIGFkZHJlc3MuZmFtaWx5KCkgPT0gQUZfSU5FVCA/IG53X2lwX3ZlcnNpb25f
NCA6IG53X2lwX3ZlcnNpb25fNik7Ci0gICAgfQorICAgIGNvbmZpZ3VyZVBhcmFtZXRlcnMocGFy
YW1ldGVycy5nZXQoKSwgYWRkcmVzcy5mYW1pbHkoKSA9PSBBRl9JTkVUID8gbndfaXBfdmVyc2lv
bl80IDogbndfaXBfdmVyc2lvbl82KTsKIAogICAgIG1fbndMaXN0ZW5lciA9IGFkb3B0TlMobndf
bGlzdGVuZXJfY3JlYXRlKHBhcmFtZXRlcnMuZ2V0KCkpKTsKICAgICBud19saXN0ZW5lcl9zZXRf
cXVldWUobV9ud0xpc3RlbmVyLmdldCgpLCB1ZHBTb2NrZXRRdWV1ZSgpKTsKQEAgLTE3NSw2ICsy
MDAsMjAgQEAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENV
RFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmUKICAgICBud19saXN0ZW5lcl9zdGFydCht
X253TGlzdGVuZXIuZ2V0KCkpOwogfQogCit2b2lkIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNv
bm5lY3Rpb25zOjpjb25maWd1cmVQYXJhbWV0ZXJzKG53X3BhcmFtZXRlcnNfdCBwYXJhbWV0ZXJz
LCBud19pcF92ZXJzaW9uX3QgdmVyc2lvbikKK3sKKyAgICBhdXRvIHByb3RvY29sU3RhY2sgPSBh
ZG9wdE5TKG53X3BhcmFtZXRlcnNfY29weV9kZWZhdWx0X3Byb3RvY29sX3N0YWNrKHBhcmFtZXRl
cnMpKTsKKyAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKG53X3Byb3RvY29sX3N0YWNrX2NvcHlf
aW50ZXJuZXRfcHJvdG9jb2wocHJvdG9jb2xTdGFjay5nZXQoKSkpOworICAgIG53X2lwX29wdGlv
bnNfc2V0X3ZlcnNpb24ob3B0aW9ucy5nZXQoKSwgdmVyc2lvbik7CisKKyAgICBpZiAobV9zaG91
bGRCeXBhc3NSZWxheSkKKyAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfYWNjb3VudF9pZChwYXJh
bWV0ZXJzLCAiY29tLmFwcGxlLnNhZmFyaS5wZWVydG9wZWVyIik7CisjaWYgSEFWRShOV1BBUkFN
RVRFUlNfVFJBQ0tFUl9BUEkpCisgICAgbndfcGFyYW1ldGVyc19zZXRfaXNfdGhpcmRfcGFydHlf
d2ViX2NvbnRlbnQocGFyYW1ldGVycywgbV9pc0ZpcnN0UGFydHkpOworICAgIG53X3BhcmFtZXRl
cnNfc2V0X2lzX2tub3duX3RyYWNrZXIocGFyYW1ldGVycywgbV9pc0tub3duVHJhY2tlcik7Cisj
ZW5kaWYKK30KKwogdm9pZCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y2xv
c2UoKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX253Q29ubmVjdGlvbnNMb2NrIH07CkBAIC0y
MjMsMTEgKzI2Miw3IEBAIFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+IE5ldHdvcmtSVENVRFBT
b2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGVOV0Nvbm5lY3RpCiAgICAgICAgIGF1dG8gbG9j
YWxFbmRwb2ludCA9IGFkb3B0TlMobndfZW5kcG9pbnRfY3JlYXRlX2hvc3QoaG9zdEFkZHJlc3Mu
Y19zdHIoKSwgU3RyaW5nOjpudW1iZXIobV9hZGRyZXNzLnBvcnQoKSkudXRmOCgpLmRhdGEoKSkp
OwogICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9sb2NhbF9lbmRwb2ludChwYXJhbWV0ZXJzLmdl
dCgpLCBsb2NhbEVuZHBvaW50LmdldCgpKTsKICAgICB9Ci0gICAgewotICAgICAgICBhdXRvIHBy
b3RvY29sU3RhY2sgPSBhZG9wdE5TKG53X3BhcmFtZXRlcnNfY29weV9kZWZhdWx0X3Byb3RvY29s
X3N0YWNrKHBhcmFtZXRlcnMuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBvcHRpb25zID0gYWRvcHRO
Uyhud19wcm90b2NvbF9zdGFja19jb3B5X2ludGVybmV0X3Byb3RvY29sKHByb3RvY29sU3RhY2su
Z2V0KCkpKTsKLSAgICAgICAgbndfaXBfb3B0aW9uc19zZXRfdmVyc2lvbihvcHRpb25zLmdldCgp
LCByZW1vdGVBZGRyZXNzLmZhbWlseSgpID09IEFGX0lORVQgPyBud19pcF92ZXJzaW9uXzQgOiBu
d19pcF92ZXJzaW9uXzYpOwotICAgIH0KKyAgICBjb25maWd1cmVQYXJhbWV0ZXJzKHBhcmFtZXRl
cnMuZ2V0KCksIHJlbW90ZUFkZHJlc3MuZmFtaWx5KCkgPT0gQUZfSU5FVCA/IG53X2lwX3ZlcnNp
b25fNCA6IG53X2lwX3ZlcnNpb25fNik7CiAKICAgICBhdXRvIHJlbW90ZUhvc3RBZGRyZXNzID0g
cmVtb3RlQWRkcmVzcy5pcGFkZHIoKS5Ub1N0cmluZygpOwogICAgIGlmIChyZW1vdGVBZGRyZXNz
LmlwYWRkcigpLklzTmlsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9OV1BhcmFtZXRlcnNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL05XUGFyYW1ldGVyc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2OTA5NWY4NDJkYjAwMTI1MjhjOGU3
ZDg5N2Q4NjRlZmUyNDA0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9Db2NvYS9OV1BhcmFtZXRlcnNTUEkuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCA8PE5ldHdvcmsvTmV0d29yay5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKworI2ltcG9ydCA8bncvcHJpdmF0ZS5oPgorCisjZWxzZQorCitXVEZfRVhURVJO
X0NfQkVHSU4KKwordm9pZCBud19wYXJhbWV0ZXJzX3NldF9hY2NvdW50X2lkKG53X3BhcmFtZXRl
cnNfdCwgY29uc3QgY2hhciAqIGFjY291bnRfaWQpOworCisjaWYgSEFWRShOV1BBUkFNRVRFUlNf
VFJBQ0tFUl9BUEkpCit2b2lkIG53X3BhcmFtZXRlcnNfc2V0X2lzX3RoaXJkX3BhcnR5X3dlYl9j
b250ZW50KG53X3BhcmFtZXRlcnNfdCwgYm9vbCBpc190aGlyZF9wYXJ0eV93ZWJfY29udGVudCk7
Cit2b2lkIG53X3BhcmFtZXRlcnNfc2V0X2lzX2tub3duX3RyYWNrZXIobndfcGFyYW1ldGVyc190
LCBib29sIGlzX2tub3duX3RyYWNrZXIpOworI2VuZGlmIC8vIEhBVkUoTldQQVJBTUVURVJTX1RS
QUNLRVJfQVBJKQorCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMDlmNjAxNzYzMDk5YTQyZGU3Yjc0NTY4MTVkNTRlYjljZTg2NzgyYi4uYTFj
NmYxZGY0MGQ0MzQzNWM4ZWNkOTkzY2VjMzY0ZDYwMTE0YTIyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NDUsNiArOTQ1LDcgQEAK
IAkJNDFEMTI5REExRjNEMTAxODAwRDE1RTQ3IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQxMjlEOTFG
M0QxMDE0MDBEMTVFNDcgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFE
QzQ1OTYxRTNENkUyMjAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OTQxRTNENkUxRTAwQjEx
RjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5oICovOyB9OwogCQk0MURDNDU5QzFFM0RCQjI4MDBC
MTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2Vi
UlRDU29ja2V0Q2xpZW50LmggKi87IH07CisJCTQxREQ3MkFCMjY4MjE2NzMwMEE5MEM3MSAvKiBO
V1BhcmFtZXRlcnNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAqLzsg
fTsKIAkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2su
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1
MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovOyB9Owog
CQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVBQzIyNTZCQjc0
MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTQxRjA2MEUxMTY1NDMx
ODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUw
MEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAg
LTM4NDEsNiArMzg0Miw3IEBACiAJCTQxREM0NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENS
ZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSVENS
ZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREQ3MkE2MjY3QjhDMzAwMEE5MEM3MSAvKiBO
ZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREQ3
MkE3MjY3QjhDMzEwMEE5MEM3MSAvKiBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTldQYXJhbWV0ZXJzU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJX
ZWJSVENDb2RlY3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAg
LyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGliV2ViUlRDQ29kZWNz
UHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTBBN0M4
MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzkyOCw2ICs3OTMwLDcgQEAKIAkJCQk1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0Qg
LyogTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oICovLAogCQkJCTU3QjgyNjQwMjMwNEVCM0UwMEI3
MkVCMCAvKiBOZWFyRmllbGRTUEkuaCAqLywKIAkJCQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRDN0Yg
LyogTlNJbnZvY2F0aW9uU1BJLmggKi8sCisJCQkJNDFERDcyQUEyNjgyMTY3MzAwQTkwQzcxIC8q
IE5XUGFyYW1ldGVyc1NQSS5oICovLAogCQkJCTVDQjZBRTQzMjYwOTc5OUMwMEI2RUQ1QSAvKiBS
ZWFzb25TUEkuaCAqLywKIAkJCQkwRTk3RDc0QzIwMEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dz
aW5nU1BJLmggKi8sCiAJCQkJNDQ4QUMyNEQyNjcxMzVBNjAwQjI4OTIxIC8qIFN5bmFwc2VTUEku
aCAqLywKQEAgLTEyMTUxLDYgKzEyMTU0LDcgQEAKIAkJCQkxQzIwOTM2MDIyMzE4Q0IwMDAwMjZB
MzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzIxODQwMjIy
MzM4NzI4MDBCQUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzc1NEQ1NDUxQjNBMjlGRDAwM0E0QzdGIC8qIE5TSW52b2NhdGlvblNQSS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDFERDcyQUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XUGFyYW1ldGVy
c1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QUNBMTMxNjY3MEQ4OTAwNEMxOTQxIC8qIE9i
akNPYmplY3RHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NGNDdGRkIxNzI3NUM1NzAwOEFD
QjkxIC8qIFBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkVEQUE2MTExMjcxQzYw
MEU3Njc4QiAvKiBQYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwCmluZGV4IDYyNjQzMTc5YmNhYjU5NjJlY2M4OGMxMGNlZDNkZGI4OTgyNWM4NDEuLjUy
MjJiYjlkMDEyYjE2NTNiMDdmYjA5ZDRmMWY3ODdiNmE3ZGU4YjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL2FzeW5jX3Jlc29sdmVyX2ZhY3RvcnkuaD4KICNpbmNs
dWRlIDx3ZWJydGMvcGMvcGVlcl9jb25uZWN0aW9uX2ZhY3RvcnkuaD4KQEAgLTg3LDcgKzg4LDcg
QEAgdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6cmVnaXN0ZXJNRE5TTmFtZShEb2N1bWVudElkZW50
aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLAogY2xhc3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6
IHB1YmxpYyBMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSVENTb2Nr
ZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCk7CisgICAgUlRDU29ja2V0RmFjdG9yeShTdHJp
bmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmKTsK
IAogcHJpdmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVNvY2tldEZhY3RvcnkKQEAgLTk3LDE5ICs5
OCwyNSBAQCBwcml2YXRlOgogICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRl
QXN5bmNSZXNvbHZlcigpIGZpbmFsOwogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwogICAgIHZv
aWQgcmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlUmVsYXkoKSBmaW5hbCB7IG1faXNS
ZWxheURpc2FibGVkID0gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX3VzZXJBZ2Vu
dDsKKyAgICBib29sIG1faXNGaXJzdFBhcnR5IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWxh
eURpc2FibGVkIHsgZmFsc2UgfTsKKyAgICBSZWdpc3RyYWJsZURvbWFpbiBtX2RvbWFpbjsKIH07
CiAKLVJUQ1NvY2tldEZhY3Rvcnk6OlJUQ1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50
KQorUlRDU29ja2V0RmFjdG9yeTo6UlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQs
IGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKICAgICA6IG1f
dXNlckFnZW50KFdURk1vdmUodXNlckFnZW50KSkKKyAgICAsIG1faXNGaXJzdFBhcnR5KGlzRmly
c3RQYXJ0eSkKKyAgICAsIG1fZG9tYWluKFdURk1vdmUoZG9tYWluKSkKIHsKIH0KIAogcnRjOjpB
c3luY1BhY2tldFNvY2tldCogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCkKIHsKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRD
TmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5jcmVhdGVVZHBTb2NrZXQodGhpcywgYWRkcmVzcywg
bWluUG9ydCwgbWF4UG9ydCk7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxp
YldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0KHRoaXMsIGFk
ZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG1faXNGaXJzdFBhcnR5LCBtX2lzUmVsYXlEaXNhYmxl
ZCwgbV9kb21haW4pOwogfQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0
b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRy
ZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKQEAg
LTE1MCw5ICsxNTcsOSBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVkTmV0d29ya1Ro
cmVhZCgpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNl
dEFzQWN0aXZlKCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3Vz
cGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFj
dG9yeShTdHJpbmcmJiB1c2VyQWdlbnQpCitzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlk
ZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVNv
Y2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0
cmFibGVEb21haW4mJiBkb21haW4pCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8UlRDU29ja2V0
RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENT
b2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJBZ2VudCksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShk
b21haW4pKTsKIH0KIAogUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMWQxNjZjMGFhNjc2MTRmMmM4
NmMyM2UwYmJlMGMyMjZiNjBkOTk1Yi4uNjA1OGU1NGMxNTM4OTQ4ZDhhNmI0NDM1MjdkNTNjMGQ4
NzhhYmZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGlj
OgogICAgIGV4cGxpY2l0IExpYldlYlJUQ1Byb3ZpZGVyKFdlYlBhZ2UmKTsKIAogcHJpdmF0ZToK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2Nr
ZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLykgZmluYWw7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJp
bmcmJiAvKiB1c2VyQWdlbnQgKi8sIGJvb2wgLyogaXNGaXJzdFBhcnR5ICovLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmKSBmaW5hbDsKIAogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6
OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggNTMyMzNiZWY5ZWYxYjlm
YjJhNWUzNzI2N2QyYmNlNDFmZTM0ODRiMi4uYTM5MzliYzE0NWUwYjk4M2RiMThiNzlhZDdhNjJm
ZTY5NjY2Y2IzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtODUs
MTkgKzg1LDE5IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCB2b2lkCiAgICAgcmV0dXJuIHNvY2tldC5y
ZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQ
b3J0KQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wg
aXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mIGRvbWFpbikKIHsKICAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgp
KTsKICAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywg
c29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNv
Y2tldEFkZHJlc3MoKSk7CiAKICAgICBpZiAobV9jb25uZWN0aW9uKQotICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0
KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3Mp
LCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoc29ja2V0LT5pZGVudGlm
aWVyKCksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBv
cnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKICAgICBlbHNl
IHsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW10gewogICAgICAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgICAg
IH0pOwotICAgICAgICBtX3BlbmRpbmdNZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0g
c29ja2V0LT5pZGVudGlmaWVyKCksIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
KGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0XShhdXRvJiBjb25uZWN0aW9uKSB7Ci0gICAgICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRl
VURQU29ja2V0KGlkZW50aWZpZXIsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpLCAwKTsKKyAg
ICAgICAgbV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmllciA9IHNvY2tldC0+
aWRlbnRpZmllcigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNz
KSwgbWluUG9ydCwgbWF4UG9ydCwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFp
bl0oYXV0byYgY29ubmVjdGlvbikgeworICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCBhZGRy
ZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9t
YWluKSwgMCk7CiAgICAgICAgIH0pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmgKaW5kZXggNjFiMGM3YTBmYmIyNGE2OWY5M2FiYjJiNDE0NmMwYzdhN2ZjY2M1MC4uNzFk
MTI0ODI3YWIyYTZlYTI5YjE4OTliZGMwNzQ0MmI0YjkxYmQ4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENT
b2NrZXQqIHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7IH0KIAogICAgIHZvaWQgZm9y
U29ja2V0SW5Hcm91cChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgRnVuY3Rpb248dm9p
ZChMaWJXZWJSVENTb2NrZXQmKT4mKTsKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVh
dGVVZHBTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOworICAgIHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNy
ZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9w
dGlvbnMpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tl
dChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2Nh
bEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5n
JiYgdXNlckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmKTsKICAgICBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJU
Q1NvY2tldCYsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlv
blNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwo=
</data>
<flag name="commit-queue"
          id="454736"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432697</attachid>
            <date>2021-07-01 08:31:35 -0700</date>
            <delta_ts>2021-07-01 13:56:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227253-20210701173133.patch</filename>
            <type>text/plain</type>
            <size>38868</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0YWYyOTBiYTdhNTMzOTkzMmRmOGQ1
MWMwZDI2NzBjNDRhNGIyNjkuLmRmOTIwMjQ5NzFhNTIxODgwODczYzk4OTU3YzBiMmU0ZDYzNWVj
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDctMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGUgcmVsYXkgZm9yIFVEUCBzb2NrZXRzIHdo
ZW4gbm90IG5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3MjUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTkxMjE1ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhh
dmUuaDoKKyAgICAgICAgQWRkIGEgbWFjcm8gZm9yIG5ldyBOVyBtZXRob2RzLgorCiAyMDIxLTA2
LTI4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZTM3OTU0ODZhY2QxOTkzN2IyMzZkYjlkN2UzNDIyOTFjODQxZjhkMy4uYmZiNTkzNDRjNDM3
Njg2ZGE3MzBjNGEzODVhNTY0MDZmNDhhZTRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVuIG5vdCBuZWVkZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6c2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRDb25maWd1
cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjpydGNTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKwogMjAyMS0wNy0wMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVhZGFibGVTdHJlYW0uZ2V0
UmVhZGVyIGRvIG5vdCB0aHJvdyBhIHByb3BlciBleGNlcHRpb24gd2hlbiBwYXJhbWV0ZXIgaXMg
b2Ygd3JvbmcgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjZTc3YWZjOTk1YWMwMmI3OTA5YTYyOWQyOWMzMWJk
NDM0NDcwZjcxLi43YTY2N2FiOGZiODZhZjhkMTQxNjNmNzI5YmJjNGRlZDZkZmE0ZjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVu
IG5vdCBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVj
dGlvbnM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YTo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Q29ubmVjdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FD
b25uZWN0aW9uczo6Y3JlYXRlTldDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9y
eTo6UlRDU29ja2V0RmFjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6
OkNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpj
cmVhdGVTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
U29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKwogMjAyMS0wNi0yOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNaWdyYXRl
IFdlYlJUQyBVRFAgc29ja2V0IGhhbmRsaW5nIHRvIE5XIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApp
bmRleCBlYzNiNGYyNmJlNmVjNGMxODM3OTJhODdlYzZmZWRiOTVjZDY0NDdiLi43ZWYyMzM4Y2Vm
ODliNGFmNGE1ZTkxZjMyNzBlNTI4MDA3MjNmNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAt
NTQ2LDYgKzU0NiwxMCBAQAogI2RlZmluZSBIQVZFX05TVVJMU0VTU0lPTl9XRUJTT0NLRVQgMQog
I2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEyMDAwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMCkKKyNkZWZpbmUgSEFWRV9OV1BBUkFNRVRF
UlNfVFJBQ0tFUl9BUEkgMQorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkgJiYgIShQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApICYm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNkZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9D
T05TRVJWQVRJT05fTEVWRUwgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCAzMzY5
NzYzOWUwYmM1MGI2OWU4OGY4ZmM4N2M4Y2VjYTQ0MDc5NzY2Li5jMDIzNDJiZmRkODY1MDE1NTUy
OGUwZjE1OTVjNTc0M2E2MjNmY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEyOSw3ICsx
MjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNv
bnN0IFN0cmluZyYgYWN0aW9uKSA9IDA7CiAKICAgICB2b2lkIG5ld0lDRUNhbmRpZGF0ZShTdHJp
bmcmJiBzZHAsIFN0cmluZyYmIG1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCwgU3Ry
aW5nJiYgc2VydmVyVVJMKTsKLSAgICB2b2lkIGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwogICAg
IHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlSb3RhdGlvbkZvck91dGdvaW5nVmlkZW9Tb3VyY2VzKCkgeyB9CkBAIC0xODEsNiArMTgx
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZSgpIHsgfQogCisgICAgYm9vbCBzaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVz
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzOyB9OworCiBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRp
ZGF0ZT4mJiwgU3RyaW5nJiYgdXJsKTsKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ3
ZDFiMjQzZmM3OGU5YzVkYTBiZWQxN2MyOWRjNjI5ZTU0Zjg1OTguLmYzM2M0Mzc1YjU2MzYzNTJi
NTFjYWNjMGY1NzMzODg5ZWRmYThhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuY3BwCkBAIC05NCw3ICs5NCwxMSBAQCBib29sIExpYldlYlJUQ01lZGlhRW5k
cG9pbnQ6OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2VicnRj
OgogICAgIGlmICghbV9iYWNrZW5kKSB7CiAgICAgICAgIGlmICghbV9ydGNTb2NrZXRGYWN0b3J5
KSB7CiAgICAgICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgICAgICAgICBtX3J0Y1NvY2tldEZhY3RvcnkgPSBjbGllbnQuY3JlYXRlU29ja2V0
RmFjdG9yeShkb2N1bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsKKyAgICAgICAgICAg
IFJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiB7IGRvY3VtZW50LnVybCgpIH07CisgICAgICAgICAg
ICBib29sIGlzRmlyc3RQYXJ0eSA9IGRvbWFpbiA9PSBSZWdpc3RyYWJsZURvbWFpbihkb2N1bWVu
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpKTsKKyAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9y
eSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3VtZW50LnVzZXJBZ2VudChkb2N1bWVu
dC51cmwoKSksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsKKyAgICAgICAgICAgIGlm
ICghbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcygpKQor
ICAgICAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeS0+ZGlzYWJsZVJlbGF5KCk7CiAgICAg
ICAgIH0KICAgICAgICAgbV9iYWNrZW5kID0gY2xpZW50LmNyZWF0ZVBlZXJDb25uZWN0aW9uKCp0
aGlzLCBtX3J0Y1NvY2tldEZhY3RvcnkuZ2V0KCksIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwog
ICAgICAgICByZXR1cm4gISFtX2JhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRp
YUVuZHBvaW50LmgKaW5kZXggMTc2ZTdlY2Q4MjUxNTc2ZWE2N2MxNDk5MDcyMzljMzdjNjRmYjJh
YS4uMTFlNTc4NjhiMjQyOWY5NzE5ZjM3MjlmMzcwZjEzODJkNzZmNmM5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTE5LDYgKzExOSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CisgICAgTGliV2Vi
UlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSogcnRjU29ja2V0RmFjdG9yeSgp
IHsgcmV0dXJuIG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIExp
YldlYlJUQ01lZGlhRW5kcG9pbnQoTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgTGli
V2ViUlRDUHJvdmlkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGNiYmU2ZDcxNjk2OTg1ZmQzMGNiMmU5MzkyNzQ5
MzgyZjc2NDlkZGUuLmRhNWZjM2ZiM2E2MTUwMDAwYWVjOTQ5OTIxODNiZDJiNWU4MmQzNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcApAQCAtMTAyLDYgKzEwMiwxMyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6cmVzdW1lKCkKICAgICBtX2VuZHBvaW50LT5yZXN1bWUoKTsKIH0KIAordm9pZCBMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KQoreworICAgIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZygpOworICAgIGlmIChhdXRvKiBmYWN0b3J5ID0gbV9lbmRwb2ludC0+cnRjU29ja2V0RmFj
dG9yeSgpKQorICAgICAgICBmYWN0b3J5LT5kaXNhYmxlUmVsYXkoKTsKK30KKwogc3RhdGljIGlu
bGluZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpCdW5kbGVQb2xpY3kgYnVuZGxl
UG9saWN5ZnJvbUNvbmZpZ3VyYXRpb24oY29uc3QgTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGlj
eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaAppbmRleCBiZjMwODNhN2VhOGE3YTc3OWRkY2I3NjdhNjM5OGJkNDE1MzhkNGYwLi5mOWQx
MjM3NmNkMTkzMzIxN2NlMWMyMGJjMjlkZDc1MGVkMGZlZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApAQCAtMTEwLDYgKzExMCw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN1c3BlbmQoKSBmaW5hbDsKICAgICB2b2lkIHJlc3Vt
ZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIGZpbmFs
OwogCiAgICAgUmVmPExpYldlYlJUQ01lZGlhRW5kcG9pbnQ+IG1fZW5kcG9pbnQ7CiAgICAgYm9v
bCBtX2lzTG9jYWxEZXNjcmlwdGlvblNldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oCmluZGV4IDA4YTI5NTY4ZTlhNmViYmJhYzlkODU1ZjgyMzFiMTU2NmJiODJj
OTMuLjE4NjI3ZWU1N2Y3NThhMDQ3MjJkMTYxNmYwZjg3NjI4NDM0MTE1YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFBlZXJDb25u
ZWN0aW9uRmFjdG9yeUludGVyZmFjZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGli
V2ViUlRDQXVkaW9Nb2R1bGU7CitjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIHN0cnVjdCBQZWVy
Q29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzOwogc3RydWN0IFJUQ1J0cENhcGFiaWxpdGllczsK
IApAQCAtMTM5LDggKzE0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+U3VzcGVuZGFi
bGVTb2NrZXRGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVu
ZCgpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIHsgfTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpc2FibGVSZWxheSgpIHsgfTsKICAgICB9OwotICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShT
dHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZh
Y3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovLCBib29sIC8qIGlzRmlyc3RQYXJ0eSAqLywg
UmVnaXN0cmFibGVEb21haW4mJikgeyByZXR1cm4gbnVsbHB0cjsgfQogCiBwcm90ZWN0ZWQ6CiAg
ICAgTGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRl
eCBmNzJmMmNmZGNmMmNiZDYwNGJjNGNkNTA3OTJiOWQ3YmY0YTdhMzhhLi5lZjc4NDAyNDBjMjkw
NGQyZDZiNTRmMWZjMTkzY2M4ZWQyZWZjMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTEz
MiwxMSArMTMyLDExIEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6CiAgICAgYWRkU29ja2V0KGlk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAq
dGhpcywgV1RGTW92ZShzb2NrZXQpLCB0eXBlLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAK
LXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQordm9pZCBOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlz
UmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCiB7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGxhdGZvcm1VRFBTb2NrZXRzRW5hYmxlZCkg
ewotICAgICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNy
ZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgYWRkcmVzcy52YWx1ZSwgbWluUG9ydCwg
bWF4UG9ydCwgbV9pcGNDb25uZWN0aW9uLmNvcHlSZWYoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8g
c29ja2V0ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBTb2NrZXQoaWRlbnRp
ZmllciwgKnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQsIG1faXBjQ29ubmVj
dGlvbi5jb3B5UmVmKCksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBXVEZNb3ZlKGRv
bWFpbikpKSB7CiAgICAgICAgICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2Nr
ZXQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRl
eCA1NTE3MTljNWZjOGU2ZDUzZTdkZmViNDZiODJkNjY0YjI5ZDEyNjgxLi5iMjk4NWJhZTk0YjZl
NGYzZWQxMzEzYzNlODI0YzI4NTcwY2RjYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtNTIsNiAr
NTIsNyBAQCBzdHJ1Y3QgUGFja2V0T3B0aW9uczsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgUmVnaXN0cmFibGVEb21haW47CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9CiAKQEAgLTEw
Nyw3ICsxMDgsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdG
b3JJUEMoKTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZf
dCwgdWludDE2X3QpOworICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50
MTZfdCwgdWludDE2X3QsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7CiAgICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBTdHJp
bmcmJiB1c2VyQWdlbnQsIGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CiAgICAg
dm9pZCB3cmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2Vz
LmluCmluZGV4IGJmZGRkYTc5OTgzNmE0NTBkOGI1OTkyZDk1MTgyNTE1OGM2MzFjNWIuLjE5NTQw
OTZhYjE1NjFhN2E3ZmRmNWM1MGUzYTMwMzI0ODY0NmUzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQog
CiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewotICAgIENyZWF0ZVVEUFNvY2tldChX
ZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9v
bCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBkb21haW4pCiAgICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9y
dCwgaW50IG9wdGlvbnMpCiAgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
IHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogICAgIFdyYXBO
ZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29j
a2V0SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKaW5kZXggN2E3NTEyOWJm
ZGUyZTY3YjFmYjJmYjAwNTg5ZTlmMjViMDUxM2M0Ny4uMDE2MjBhMWZlMzJkN2Q2ZDczYjBiNjQx
MTJkZWFkZjUzOGVhZDVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKQEAgLTU5LDkg
KzU5LDkgQEAgY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM7CiBjbGFz
cyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1JUQ1Byb3Zp
ZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IGNyZWF0
ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRD
UHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVVRFBTb2NrZXQo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNS
ZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0gICAg
TmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYpOworICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGlzRmlyc3RQ
YXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJik7CiAgICAgfk5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYSgpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VE
UFNvY2tldENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1VEUFNvY2tldENvY29hLm1tCmluZGV4IDdhYmI2OTY1OWM3OTJlZjQwZmVjMDVkOTNj
MmNkYjk2MGFiMDEwN2QuLmZhNjg5N2Y3NjhmMjZkNGY1NWY2ZDQzMjVmOGJlZGIzNmYwZDM2YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENVRFBTb2NrZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW0KQEAgLTMxLDMxICszMSw0OCBAQAogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMaWJXZWJSVENOZXR3b3JrTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTldQYXJhbWV0ZXJzU1BJLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU1RVTk1lc3NhZ2VQYXJzaW5nLmg+CiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4K
ICNpbmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAorI2lmIEhBVkUoTldQQVJB
TUVURVJTX1RSQUNLRVJfQVBJKQorU09GVF9MSU5LX0xJQlJBUlkobGlibmV0d29ya2V4dGVuc2lv
bikKK1NPRlRfTElOS19DTEFTUyhsaWJuZXR3b3JrZXh0ZW5zaW9uLCBORUhlbHBlclRyYWNrZXJE
aXNwb3NpdGlvbl90KQorU09GVF9MSU5LX0NMQVNTKGxpYm5ldHdvcmtleHRlbnNpb24sIE5FSGVs
cGVyVHJhY2tlckFwcEluZm9SZWYpCitTT0ZUX0xJTktfQ0xBU1MobGlibmV0d29ya2V4dGVuc2lv
biwgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZikKK1NPRlRfTElOSyhsaWJuZXR3b3Jr
ZXh0ZW5zaW9uLCBORUhlbHBlclRyYWNrZXJHZXREaXNwb3NpdGlvbiwgTkVIZWxwZXJUcmFja2Vy
RGlzcG9zaXRpb25fdCosIChORUhlbHBlclRyYWNrZXJBcHBJbmZvUmVmICphcHBfaW5mb19yZWYs
IENGQXJyYXlSZWYgZG9tYWlucywgTkVIZWxwZXJUcmFja2VyRG9tYWluQ29udGV4dFJlZiAqdHJh
Y2tlckRvbWFpbkNvbnRleHRSZWYsIENGSW5kZXggKnRyYWNrZXJEb21haW5JbmRleCksIChhcHBf
aW5mb19yZWYsIGRvbWFpbnMsIHRyYWNrZXJEb21haW5Db250ZXh0UmVmLCB0cmFja2VyRG9tYWlu
SW5kZXgpKQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVj
dGlvbnM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YUNvbm5lY3Rpb25zPiBjcmVhdGUoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBp
ZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHByb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhp
ZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSkpOyB9Cisg
ICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3JlYXRl
KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JU
Q1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29s
IGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFp
bikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0
aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwg
aXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpOyB9CiAKICAgICB2b2lkIGNs
b3NlKCk7CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKTsKICAgICB2
b2lkIHNlbmRUbyhjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmLCBjb25zdCBydGM6OlBhY2tldE9wdGlvbnMmKTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25u
ZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJv
dmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAKICAgICBSZXRhaW5QdHI8bndfY29ubmVjdGlvbl90PiBj
cmVhdGVOV0Nvbm5lY3Rpb24oY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBz
ZXR1cE5XQ29ubmVjdGlvbihud19jb25uZWN0aW9uX3QsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYpOworICAgIHZvaWQgY29uZmlndXJlUGFyYW1ldGVycyhud19wYXJhbWV0ZXJzX3QsIG53X2lw
X3ZlcnNpb25fdCk7CiAKICAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisjaWYg
SEFWRShOV1BBUkFNRVRFUlNfVFJBQ0tFUl9BUEkpCisgICAgYm9vbCBtX2lzRmlyc3RQYXJ0eSB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2lzS25vd25UcmFja2VyIHsgZmFsc2UgfTsKKyNlbmRpZgor
ICAgIGJvb2wgbV9zaG91bGRCeXBhc3NSZWxheSB7IGZhbHNlIH07CiAgICAgcnRjOjpTb2NrZXRB
ZGRyZXNzIG1fYWRkcmVzczsKICAgICBSZXRhaW5QdHI8bndfbGlzdGVuZXJfdD4gbV9ud0xpc3Rl
bmVyOwogICAgIExvY2sgbV9ud0Nvbm5lY3Rpb25zTG9jazsKQEAgLTczLDE2ICs5MCwxNSBAQCBz
dGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB1ZHBTb2NrZXRRdWV1ZSgpCiAgICAgcmV0dXJuIHF1ZXVl
OwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdv
cmtSVENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRl
ciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCitzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtSVENVRFBTb2Nr
ZXRDb2NvYTo6Y3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQ
b3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5
LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IGRvbWFpbikKIHsKLSAgICAvLyBGSVhNRTogRGVjaWRlIGhvdyB0byB1c2UgbWluUG9ydC9tYXhQ
b3J0LgotICAgIHJldHVybiBtYWtlVW5pcXVlPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYT4oaWRl
bnRpZmllciwgcnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAg
IHJldHVybiBtYWtlVW5pcXVlPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYT4oaWRlbnRpZmllciwg
cnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIGlzRmlyc3RQYXJ0eSwg
aXNSZWxheURpc2FibGVkLCBkb21haW4pOwogfQogCi1OZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6
Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uKQorTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2Eo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRD
UHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3Ms
IFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJv
b2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKQogICAgIDogbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKICAgICAsIG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQotICAgICwgbV9ud0Nvbm5lY3Rpb25zKE5ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYUNvbm5lY3Rpb25zOjpjcmVhdGUoaWRlbnRpZmllciwgcnRjUHJvdmlkZXIsIGFkZHJlc3Ms
IFdURk1vdmUoY29ubmVjdGlvbikpKQorICAgICwgbV9ud0Nvbm5lY3Rpb25zKE5ldHdvcmtSVENV
RFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGUoaWRlbnRpZmllciwgcnRjUHJvdmlkZXIs
IGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2Fi
bGVkLCBkb21haW4pKQogewogfQogCkBAIC0xMTksOSArMTM1LDI0IEBAIHN0YXRpYyBydGM6OlNv
Y2tldEFkZHJlc3Mgc29ja2V0QWRkcmVzc0Zyb21JbmNvbWluZ0Nvbm5lY3Rpb24obndfY29ubmVj
dGlvbl90IGNvCiAgICAgcmV0dXJuIHJ0Yzo6U29ja2V0QWRkcmVzcyB7IG53X2VuZHBvaW50X2dl
dF9ob3N0bmFtZShlbmRwb2ludC5nZXQoKSksIG53X2VuZHBvaW50X2dldF9wb3J0KGVuZHBvaW50
LmdldCgpKSB9OwogfQogCi1OZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0
d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbikKKyNpZiBIQVZFKE5XUEFSQU1FVEVSU19UUkFDS0VSX0FQSSkKK3N0YXRpYyBi
b29sIGlzS25vd25UcmFja2VyKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21h
aW4pCit7CisgICAgTlNBcnJheTxOU1N0cmluZyAqPiAqZG9tYWlucyA9IEBbZG9tYWluLnN0cmlu
ZygpXTsKKyAgICBORUhlbHBlclRyYWNrZXJEb21haW5Db250ZXh0UmVmICpjb250ZXh0ID0gbmls
OworICAgIENGSW5kZXggaW5kZXggPSAwOworICAgIHJldHVybiAhIU5FSGVscGVyVHJhY2tlckdl
dERpc3Bvc2l0aW9uKG51bGxwdHIsIChDRkFycmF5UmVmKWRvbWFpbnMsIGNvbnRleHQsICZpbmRl
eCk7Cit9CisjZW5kaWYKKworTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5l
dHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisj
aWYgSEFWRShOV1BBUkFNRVRFUlNfVFJBQ0tFUl9BUEkpCisgICAgLCBtX2lzRmlyc3RQYXJ0eShp
c0ZpcnN0UGFydHkpCisgICAgLCBtX2lzS25vd25UcmFja2VyKGlzS25vd25UcmFja2VyKGRvbWFp
bikpCisjZW5kaWYKKyAgICAsIG1fc2hvdWxkQnlwYXNzUmVsYXkoaXNSZWxheURpc2FibGVkKQog
ewogICAgIGF1dG8gcGFyYW1ldGVycyA9IGFkb3B0TlMobndfcGFyYW1ldGVyc19jcmVhdGVfc2Vj
dXJlX3VkcChOV19QQVJBTUVURVJTX0RJU0FCTEVfUFJPVE9DT0wsIE5XX1BBUkFNRVRFUlNfREVG
QVVMVF9DT05GSUdVUkFUSU9OKSk7CiAgICAgewpAQCAtMTMyLDExICsxNjMsNyBAQCBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29u
bmVjdGlvbnMoV2ViQ29yZQogICAgICAgICBtX2FkZHJlc3MgPSB7IG53X2VuZHBvaW50X2dldF9o
b3N0bmFtZShsb2NhbEVuZHBvaW50LmdldCgpKSwgbndfZW5kcG9pbnRfZ2V0X3BvcnQobG9jYWxF
bmRwb2ludC5nZXQoKSkgfTsKICAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfbG9jYWxfZW5kcG9p
bnQocGFyYW1ldGVycy5nZXQoKSwgbG9jYWxFbmRwb2ludC5nZXQoKSk7CiAgICAgfQotICAgIHsK
LSAgICAgICAgYXV0byBwcm90b2NvbFN0YWNrID0gYWRvcHROUyhud19wYXJhbWV0ZXJzX2NvcHlf
ZGVmYXVsdF9wcm90b2NvbF9zdGFjayhwYXJhbWV0ZXJzLmdldCgpKSk7Ci0gICAgICAgIGF1dG8g
b3B0aW9ucyA9IGFkb3B0TlMobndfcHJvdG9jb2xfc3RhY2tfY29weV9pbnRlcm5ldF9wcm90b2Nv
bChwcm90b2NvbFN0YWNrLmdldCgpKSk7Ci0gICAgICAgIG53X2lwX29wdGlvbnNfc2V0X3ZlcnNp
b24ob3B0aW9ucy5nZXQoKSwgYWRkcmVzcy5mYW1pbHkoKSA9PSBBRl9JTkVUID8gbndfaXBfdmVy
c2lvbl80IDogbndfaXBfdmVyc2lvbl82KTsKLSAgICB9CisgICAgY29uZmlndXJlUGFyYW1ldGVy
cyhwYXJhbWV0ZXJzLmdldCgpLCBhZGRyZXNzLmZhbWlseSgpID09IEFGX0lORVQgPyBud19pcF92
ZXJzaW9uXzQgOiBud19pcF92ZXJzaW9uXzYpOwogCiAgICAgbV9ud0xpc3RlbmVyID0gYWRvcHRO
Uyhud19saXN0ZW5lcl9jcmVhdGUocGFyYW1ldGVycy5nZXQoKSkpOwogICAgIG53X2xpc3RlbmVy
X3NldF9xdWV1ZShtX253TGlzdGVuZXIuZ2V0KCksIHVkcFNvY2tldFF1ZXVlKCkpOwpAQCAtMTc1
LDYgKzIwMiwyMCBAQCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29y
a1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZQogICAgIG53X2xpc3RlbmVyX3N0
YXJ0KG1fbndMaXN0ZW5lci5nZXQoKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hQ29ubmVjdGlvbnM6OmNvbmZpZ3VyZVBhcmFtZXRlcnMobndfcGFyYW1ldGVyc190IHBhcmFt
ZXRlcnMsIG53X2lwX3ZlcnNpb25fdCB2ZXJzaW9uKQoreworICAgIGF1dG8gcHJvdG9jb2xTdGFj
ayA9IGFkb3B0TlMobndfcGFyYW1ldGVyc19jb3B5X2RlZmF1bHRfcHJvdG9jb2xfc3RhY2socGFy
YW1ldGVycykpOworICAgIGF1dG8gb3B0aW9ucyA9IGFkb3B0TlMobndfcHJvdG9jb2xfc3RhY2tf
Y29weV9pbnRlcm5ldF9wcm90b2NvbChwcm90b2NvbFN0YWNrLmdldCgpKSk7CisgICAgbndfaXBf
b3B0aW9uc19zZXRfdmVyc2lvbihvcHRpb25zLmdldCgpLCB2ZXJzaW9uKTsKKworICAgIGlmICht
X3Nob3VsZEJ5cGFzc1JlbGF5KQorICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9hY2NvdW50X2lk
KHBhcmFtZXRlcnMsICJjb20uYXBwbGUuc2FmYXJpLnBlZXJ0b3BlZXIiKTsKKyNpZiBIQVZFKE5X
UEFSQU1FVEVSU19UUkFDS0VSX0FQSSkKKyAgICBud19wYXJhbWV0ZXJzX3NldF9pc190aGlyZF9w
YXJ0eV93ZWJfY29udGVudChwYXJhbWV0ZXJzLCBtX2lzRmlyc3RQYXJ0eSk7CisgICAgbndfcGFy
YW1ldGVyc19zZXRfaXNfa25vd25fdHJhY2tlcihwYXJhbWV0ZXJzLCBtX2lzS25vd25UcmFja2Vy
KTsKKyNlbmRpZgorfQorCiB2b2lkIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25z
OjpjbG9zZSgpCiB7CiAgICAgTG9ja2VyIGxvY2tlciB7IG1fbndDb25uZWN0aW9uc0xvY2sgfTsK
QEAgLTIyMywxMSArMjY0LDcgQEAgUmV0YWluUHRyPG53X2Nvbm5lY3Rpb25fdD4gTmV0d29ya1JU
Q1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6OmNyZWF0ZU5XQ29ubmVjdGkKICAgICAgICAgYXV0
byBsb2NhbEVuZHBvaW50ID0gYWRvcHROUyhud19lbmRwb2ludF9jcmVhdGVfaG9zdChob3N0QWRk
cmVzcy5jX3N0cigpLCBTdHJpbmc6Om51bWJlcihtX2FkZHJlc3MucG9ydCgpKS51dGY4KCkuZGF0
YSgpKSk7CiAgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X2xvY2FsX2VuZHBvaW50KHBhcmFtZXRl
cnMuZ2V0KCksIGxvY2FsRW5kcG9pbnQuZ2V0KCkpOwogICAgIH0KLSAgICB7Ci0gICAgICAgIGF1
dG8gcHJvdG9jb2xTdGFjayA9IGFkb3B0TlMobndfcGFyYW1ldGVyc19jb3B5X2RlZmF1bHRfcHJv
dG9jb2xfc3RhY2socGFyYW1ldGVycy5nZXQoKSkpOwotICAgICAgICBhdXRvIG9wdGlvbnMgPSBh
ZG9wdE5TKG53X3Byb3RvY29sX3N0YWNrX2NvcHlfaW50ZXJuZXRfcHJvdG9jb2wocHJvdG9jb2xT
dGFjay5nZXQoKSkpOwotICAgICAgICBud19pcF9vcHRpb25zX3NldF92ZXJzaW9uKG9wdGlvbnMu
Z2V0KCksIHJlbW90ZUFkZHJlc3MuZmFtaWx5KCkgPT0gQUZfSU5FVCA/IG53X2lwX3ZlcnNpb25f
NCA6IG53X2lwX3ZlcnNpb25fNik7Ci0gICAgfQorICAgIGNvbmZpZ3VyZVBhcmFtZXRlcnMocGFy
YW1ldGVycy5nZXQoKSwgcmVtb3RlQWRkcmVzcy5mYW1pbHkoKSA9PSBBRl9JTkVUID8gbndfaXBf
dmVyc2lvbl80IDogbndfaXBfdmVyc2lvbl82KTsKIAogICAgIGF1dG8gcmVtb3RlSG9zdEFkZHJl
c3MgPSByZW1vdGVBZGRyZXNzLmlwYWRkcigpLlRvU3RyaW5nKCk7CiAgICAgaWYgKHJlbW90ZUFk
ZHJlc3MuaXBhZGRyKCkuSXNOaWwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL0NvY29hL05XUGFyYW1ldGVyc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvQ29jb2EvTldQYXJhbWV0ZXJzU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA2NTQxZTllZWVhYmM2OTQy
YzIwODBjNzgyMjUwNGJiMmEwNWRmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL0NvY29hL05XUGFyYW1ldGVyc1NQSS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxOZXR3b3JrL05ldHdvcmsuaD4KKworI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisKKyNpbXBvcnQgPG53L3ByaXZhdGUuaD4KKworI2Vsc2UKKworV1RGX0VY
VEVSTl9DX0JFR0lOCisKK3ZvaWQgbndfcGFyYW1ldGVyc19zZXRfYWNjb3VudF9pZChud19wYXJh
bWV0ZXJzX3QsIGNvbnN0IGNoYXIgKiBhY2NvdW50X2lkKTsKKworI2lmIEhBVkUoTldQQVJBTUVU
RVJTX1RSQUNLRVJfQVBJKQordm9pZCBud19wYXJhbWV0ZXJzX3NldF9pc190aGlyZF9wYXJ0eV93
ZWJfY29udGVudChud19wYXJhbWV0ZXJzX3QsIGJvb2wgaXNfdGhpcmRfcGFydHlfd2ViX2NvbnRl
bnQpOwordm9pZCBud19wYXJhbWV0ZXJzX3NldF9pc19rbm93bl90cmFja2VyKG53X3BhcmFtZXRl
cnNfdCwgYm9vbCBpc19rbm93bl90cmFja2VyKTsKKyNlbmRpZiAvLyBIQVZFKE5XUEFSQU1FVEVS
U19UUkFDS0VSX0FQSSkKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDA5ZjYwMTc2MzA5OWE0MmRlN2I3NDU2ODE1ZDU0ZWI5Y2U4Njc4MmIu
LmExYzZmMWRmNDBkNDM0MzVjOGVjZDk5M2NlYzM2NGQ2MDExNGEyMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTQ1LDYgKzk0NSw3
IEBACiAJCTQxRDEyOURBMUYzRDEwMTgwMEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEMTI5
RDkxRjNEMTAxNDAwRDE1RTQ3IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggKi87IH07CiAJ
CTQxREM0NTk2MUUzRDZFMjIwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTk0MUUzRDZFMUUw
MEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1OUMxRTNEQkIy
ODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUExRTNEQkIyNDAwQjExRjUxIC8qIExp
YldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9OworCQk0MURENzJBQjI2ODIxNjczMDBBOTBDNzEg
LyogTldQYXJhbWV0ZXJzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MURENzJBQTI2ODIxNjczMDBBOTBDNzEgLyogTldQYXJhbWV0ZXJzU1BJLmgg
Ki87IH07CiAJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLzsg
fTsKIAkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QUMyMjU2
QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovOyB9OwogCQk0MUYwNjBFMTE2
NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjBERDE2NTQz
MTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CkBAIC0zODQxLDYgKzM4NDIsNyBAQAogCQk0MURDNDVBMDFFM0RDNTNDMDBCMTFGNTEgLyogV2Vi
UlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2Vi
UlRDUmVzb2x2ZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURENzJBNjI2N0I4QzMwMDBBOTBDNzEg
LyogTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0
d29ya1JUQ1VEUFNvY2tldENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MURENzJBNzI2N0I4QzMxMDBBOTBDNzEgLyogTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MURENzJBQTI2ODIxNjczMDBBOTBDNzEgLyogTldQYXJhbWV0ZXJzU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5XUGFyYW1ldGVyc1NQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAgLyog
TGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGliV2ViUlRDQ29kZWNzUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMEE3QzcyM0I2Mzk3OTAwNTYx
MDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUw
QTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTc5MjgsNiArNzkzMCw3IEBACiAJCQkJNTc0MjE3OTEyNDAwRTA5ODAwMkIz
MDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEkuaCAqLywKIAkJCQk1N0I4MjY0MDIzMDRFQjNF
MDBCNzJFQjAgLyogTmVhckZpZWxkU1BJLmggKi8sCiAJCQkJMzc1NEQ1NDQxQjNBMjlGRDAwM0E0
QzdGIC8qIE5TSW52b2NhdGlvblNQSS5oICovLAorCQkJCTQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3
MSAvKiBOV1BhcmFtZXRlcnNTUEkuaCAqLywKIAkJCQk1Q0I2QUU0MzI2MDk3OTlDMDBCNkVENUEg
LyogUmVhc29uU1BJLmggKi8sCiAJCQkJMEU5N0Q3NEMyMDBFOEZGMzAwQkY2NjQzIC8qIFNhZmVC
cm93c2luZ1NQSS5oICovLAogCQkJCTQ0OEFDMjREMjY3MTM1QTYwMEIyODkyMSAvKiBTeW5hcHNl
U1BJLmggKi8sCkBAIC0xMjE1MSw2ICsxMjE1NCw3IEBACiAJCQkJMUMyMDkzNjAyMjMxOENCMDAw
MDI2QTM5IC8qIE5TQXR0cmlidXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyMTg0
MDIyMjMzODcyODAwQkFDNzAwIC8qIE5TQXR0cmlidXRlZFN0cmluZ1ByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTM3NTRENTQ1MUIzQTI5RkQwMDNBNEM3RiAvKiBOU0ludm9jYXRpb25TUEku
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxREQ3MkFCMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1BhcmFt
ZXRlcnNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEFDQTEzMTY2NzBEODkwMDRDMTk0MSAv
KiBPYmpDT2JqZWN0R3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRjQ3RkZCMTcyNzVDNTcw
MDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzZFREFBNjExMTI3
MUM2MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAppbmRleCA2MjY0MzE3OWJjYWI1OTYyZWNjODhjMTBjZWQzZGRiODk4MjVjODQx
Li41MjIyYmI5ZDAxMmIxNjUzYjA3ZmIwOWQ0ZjFmNzg3YjZhN2RlOGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9hc3luY19yZXNvbHZlcl9mYWN0b3J5Lmg+CiAj
aW5jbHVkZSA8d2VicnRjL3BjL3BlZXJfY29ubmVjdGlvbl9mYWN0b3J5Lmg+CkBAIC04Nyw3ICs4
OCw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUoRG9jdW1lbnRJ
ZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwKIGNsYXNzIFJUQ1NvY2tldEZhY3RvcnkgZmlu
YWwgOiBwdWJsaWMgTGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUlRD
U29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQpOworICAgIFJUQ1NvY2tldEZhY3Rvcnko
U3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFibGVEb21haW4m
Jik7CiAKIHByaXZhdGU6CiAgICAgLy8gU3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5CkBAIC05Nywx
OSArOTgsMjUgQEAgcHJpdmF0ZToKICAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIENy
ZWF0ZUFzeW5jUmVzb2x2ZXIoKSBmaW5hbDsKICAgICB2b2lkIHN1c3BlbmQoKSBmaW5hbDsKICAg
ICB2b2lkIHJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZVJlbGF5KCkgZmluYWwgeyBt
X2lzUmVsYXlEaXNhYmxlZCA9IHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBTdHJpbmcgbV91c2Vy
QWdlbnQ7CisgICAgYm9vbCBtX2lzRmlyc3RQYXJ0eSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
UmVsYXlEaXNhYmxlZCB7IGZhbHNlIH07CisgICAgUmVnaXN0cmFibGVEb21haW4gbV9kb21haW47
CiB9OwogCi1SVENTb2NrZXRGYWN0b3J5OjpSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJB
Z2VudCkKK1JUQ1NvY2tldEZhY3Rvcnk6OlJUQ1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFn
ZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCiAgICAg
OiBtX3VzZXJBZ2VudChXVEZNb3ZlKHVzZXJBZ2VudCkpCisgICAgLCBtX2lzRmlyc3RQYXJ0eShp
c0ZpcnN0UGFydHkpCisgICAgLCBtX2RvbWFpbihXVEZNb3ZlKGRvbWFpbikpCiB7CiB9CiAKIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tldChj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQpCiB7Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldl
YlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0KHRoaXMsIGFkZHJl
c3MsIG1pblBvcnQsIG1heFBvcnQpOworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmNyZWF0ZVVkcFNvY2tldCh0aGlz
LCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBtX2lzRmlyc3RQYXJ0eSwgbV9pc1JlbGF5RGlz
YWJsZWQsIG1fZG9tYWluKTsKIH0KIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRDU29ja2V0
RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
YWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMp
CkBAIC0xNTAsOSArMTU3LDkgQEAgdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6c3RhcnRlZE5ldHdv
cmtUaHJlYWQoKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmso
KS5zZXRBc0FjdGl2ZSgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6
OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tl
dEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50KQorc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1By
b3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVh
dGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0UGFydHksIFJl
Z2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQogewotICAgIHJldHVybiBtYWtlVW5pcXVlPFJUQ1Nv
Y2tldEZhY3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8
UlRDU29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpLCBpc0ZpcnN0UGFydHksIFdURk1v
dmUoZG9tYWluKSk7CiB9CiAKIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDFkMTY2YzBhYTY3NjE0
ZjJjODZjMjNlMGJiZTBjMjI2YjYwZDk5NWIuLjYwNThlNTRjMTUzODk0OGQ4YTZiNDQzNTI3ZDUz
YzBkODc4YWJmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC01Miw3ICs1Miw3IEBAIHB1
YmxpYzoKICAgICBleHBsaWNpdCBMaWJXZWJSVENQcm92aWRlcihXZWJQYWdlJik7CiAKIHByaXZh
dGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRl
U29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIGZpbmFsOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZhY3Rvcnko
U3RyaW5nJiYgLyogdXNlckFnZW50ICovLCBib29sIC8qIGlzRmlyc3RQYXJ0eSAqLywgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJikgZmluYWw7CiAKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Kiwg
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IDUzMjMzYmVmOWVm
MWI5ZmIyYTVlMzcyNjdkMmJjZTQxZmUzNDg0YjIuLmEzOTM5YmMxNDVlMGI5ODNkYjE4Yjc5YWQ3
YTYyZmU2OTY2NmNiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAg
LTg1LDE5ICs4NSwxOSBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZAogICAgIHJldHVybiBzb2Nr
ZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCkKK3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBi
b29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiB7CiAgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxv
b3AoKSk7CiAgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRo
aXMsIHNvY2tldEdyb3VwLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRj
OjpTb2NrZXRBZGRyZXNzKCkpOwogCiAgICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNv
Y2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRy
ZXNzKSwgbWluUG9ydCwgbWF4UG9ydCksIDApOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KHNvY2tldC0+aWRl
bnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBt
YXhQb3J0LCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSwgMCk7CiAgICAg
ZWxzZSB7CiAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtdIHsKICAgICAgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwogICAg
ICAgICB9KTsKLSAgICAgICAgbV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmll
ciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydF0oYXV0byYgY29ubmVjdGlvbikgewotICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNy
ZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCk7
CisgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2Nr
ZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRk
cmVzcyksIG1pblBvcnQsIG1heFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBk
b21haW5dKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChN
ZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwg
YWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQs
IGRvbWFpbiksIDApOwogICAgICAgICB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0
RmFjdG9yeS5oCmluZGV4IDYxYjBjN2EwZmJiMjRhNjlmOTNhYmIyYjQxNDZjMGM3YTdmY2NjNTAu
LjcxZDEyNDgyN2FiMmE2ZWEyOWIxODk5YmRjMDc0NDJiNGI5MWJkODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldEZhY3RvcnkuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgTGliV2Vi
UlRDU29ja2V0KiBzb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyKSB7IHJldHVybiBtX3NvY2tldHMuZ2V0KGlkZW50aWZpZXIpOyB9CiAKICAgICB2b2lk
IGZvclNvY2tldEluR3JvdXAoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoTGliV2ViUlRDU29ja2V0Jik+Jik7Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCog
Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KTsKKyAgICBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3Jv
dXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90
IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0
KiBjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGlu
dCBvcHRpb25zKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BT
b2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
bG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0
cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zJik7CiAg
ICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJX
ZWJSVENTb2NrZXQmLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5l
Y3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>