<?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>123935</bug_id>
          
          <creation_ts>2013-11-06 15:29:07 -0800</creation_ts>
          <short_desc>Changing MediaStreamDescriptor to MediaStreamPrivate</short_desc>
          <delta_ts>2013-11-13 17:17:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124288</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago de Barros Lacerda">thiago.lacerda</reporter>
          <assigned_to name="Thiago de Barros Lacerda">thiago.lacerda</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>947954</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-06 15:29:07 -0800</bug_when>
    <thetext>In order to follow the same model of MediaStreamTrack platform implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947955</commentid>
    <comment_count>1</comment_count>
      <attachid>216234</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-06 15:31:26 -0800</bug_when>
    <thetext>Created attachment 216234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948257</commentid>
    <comment_count>2</comment_count>
      <attachid>216234</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-11-07 07:56:20 -0800</bug_when>
    <thetext>Comment on attachment 216234
Patch

Thanks for doing this cleanup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948268</commentid>
    <comment_count>3</comment_count>
      <attachid>216234</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-07 08:19:55 -0800</bug_when>
    <thetext>Comment on attachment 216234
Patch

Clearing flags on attachment: 216234

Committed r158849: &lt;http://trac.webkit.org/changeset/158849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948269</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-07 08:19:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216234</attachid>
            <date>2013-11-06 15:31:26 -0800</date>
            <delta_ts>2013-11-07 08:19:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123935-20131106203124.patch</filename>
            <type>text/plain</type>
            <size>85715</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwODdkMGExOTJlOTZi
YTVjY2FlNjRkMjhkMzhiZjM4Y2FiMjRmYy4uMzFlOWYwNjliMTExNDA3NTMzNjA5NGE1MjVkMjE3
OWJmMDI0NmExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEzLTExLTA2ICBUaGlh
Z28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIENoYW5naW5nIE1lZGlhU3RyZWFtRGVzY3JpcHRvciB0byBNZWRpYVN0cmVhbVByaXZh
dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzkz
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbTo6ZW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OnNldEVuZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjphZGRUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbTo6cmVtb3ZlVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW06OnJlbW92ZVJlbW90ZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVJlZ2lzdHJ5Ojpy
ZWdpc3RlclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVJlZ2lzdHJ5Ojp1bnJl
Z2lzdGVyVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVnaXN0cnk6Omxvb2t1
cE1lZGlhU3RyZWFtUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVJlZ2lzdHJ5Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjphZGRTdHJlYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlbW92ZVN0cmVhbSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6ZGlkQWRkUmVtb3RlU3RyZWFtKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0p
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZGlkQ3JlYXRlU3RyZWFtKToKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmNhbGxTdWNjZXNzSGFuZGxlcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok1lZGlhU3RyZWFt
QXVkaW9EZXN0aW5hdGlvbk5vZGUpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9XZWJNZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpsb29rdXBNZWRpYVN0cmVhbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1EZXNjcmlwdG9yLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkU291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkUmVtb3RlU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlUmVtb3RlU291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkUmVtb3RlVHJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVSZW1vdGVU
cmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnNldEVuZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbURlc2NyaXB0
b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudDo6fk1lZGlh
U3RyZWFtUHJpdmF0ZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZh
dGU6On5NZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Q
cml2YXRlOjpjbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpz
ZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjppZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6Om51bWJlck9mQXVkaW9Tb3VyY2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YXVkaW9Tb3VyY2VzKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6bnVtYmVyT2ZWaWRlb1NvdXJj
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp2aWRlb1NvdXJjZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpudW1iZXJPZkF1ZGlvVHJh
Y2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YXVkaW9UcmFja3Mp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpudW1iZXJPZlZpZGVvVHJh
Y2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6dmlkZW9UcmFja3Mp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjplbmRlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRl
ckJsYWNrQmVycnkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVy
cnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1D
ZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXJNYWM6OmNy
ZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVh
bUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTdHJlYW1DZW50ZXI6OmNy
ZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jazo6YWRkU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2s6OnJlbW92ZVN0cmVhbSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmg6CisKIDIwMTMtMTEtMDYgIEJlbSBKb25lcy1C
ZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgUmVuYW1lIHJlZ2lvbiBsaW5lIG9m
ZnNldCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkNWZhNDlmYzIz
YjRkN2UzMDJiOTM2MzQ5Mzk5ZGVjZmMzYTViYmI0Li41MWY0YjgyOTNhN2ZjZWNkNDg1NzJhODVj
NmI4ZWI1MTA3ZWQ4OGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMy0xMS0wNiAgVGhpYWdvIGRlIEJhcnJvcyBMYWNlcmRhICA8dGhpYWdvLmxh
Y2VyZGFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBDaGFuZ2luZyBNZWRpYVN0cmVhbURlc2Ny
aXB0b3IgdG8gTWVkaWFTdHJlYW1Qcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM5MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9NZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViVXNlck1lZGlhUmVxdWVzdENsaWVudEltcGw6OnJlcXVlc3RTdWNjZWVkZWQp
OgorCiAyMDEzLTExLTAxICBUaGlhZ28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJk
YUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJlbW92aW5nIE1lZGlhU3RyZWFtVHJhY2tWZWN0
b3IgYW5kIE1lZGlhU3RyZWFtU291cmNlVmVjdG9yIHR5cGVkZWZzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGJiNmI2OWQzYWIyZDhlM2E2ZjE1YWI1Nzc0YmU3MDZmNTViNmZjNTAuLjdjNGI4MzBl
MGNhYzVlMjhhZTRkMTg5ZjNhMDY2MDI4YjMwMWU5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xOTg1LDcgKzE5ODUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbGV2
ZWxkYi9MZXZlbERCV3JpdGVCYXRjaC5jcHAKIAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtQ2VudGVyLmNwcAotICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
RGVzY3JpcHRvci5jcHAKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuY3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCiAgICAg
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiYmQ4OTk3MjQzMWMwMTYyNzE2Y2M4NzdkMjRiNTVk
MDc5YzYyODY5Li4yOTg5NzNlZTk4OGY5NzdjMDU4YWExZTNjMjA2YjE5ZjNkZGNlODU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTUzOTAsOCArNTM5MCw4IEBAIHdlYmNvcmVf
cGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5o
IFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbURlc2Ny
aXB0b3IuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbURlc2NyaXB0b3IuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Qcml2YXRlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXgg
OGE2YmJiYmFjN2VkNjkxYzZlMzc3NTA4ZDVhZjFkNjA5M2U3ZWNmNC4uNTI1MjUzMGE4YTNmYjAx
Y2MyMGJhNGQxYTYyZmE2YzM2NGU4OGZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMiBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Myw3ICs0NCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJl
YW06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVy
biBNZWRpYVN0cmVhbTo6Y3JlYXRlKGNvbnRleHQsIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6Y3Jl
YXRlKFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PigpLCBWZWN0b3I8UmVmUHRyPE1l
ZGlhU3RyZWFtU291cmNlPj4oKSkpOworICAgIHJldHVybiBNZWRpYVN0cmVhbTo6Y3JlYXRlKGNv
bnRleHQsIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJl
YW1Tb3VyY2U+PigpLCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4oKSkpOwogfQog
CiBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKQEAg
LTU5LDcgKzYwLDcgQEAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBQYXMKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHN0cmVhbS0+bV92aWRlb1RyYWNrcy5zaXplKCk7ICsraSkKICAgICAgICAgdmlk
ZW9UcmFja3MuYXBwZW5kKCZzdHJlYW0tPm1fdmlkZW9UcmFja3NbaV0tPnByaXZhdGVUcmFjaygp
KTsKIAotICAgIHJldHVybiBNZWRpYVN0cmVhbTo6Y3JlYXRlKGNvbnRleHQsIE1lZGlhU3RyZWFt
RGVzY3JpcHRvcjo6Y3JlYXRlKGF1ZGlvVHJhY2tzLCB2aWRlb1RyYWNrcykpOworICAgIHJldHVy
biBNZWRpYVN0cmVhbTo6Y3JlYXRlKGNvbnRleHQsIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRl
KGF1ZGlvVHJhY2tzLCB2aWRlb1RyYWNrcykpOwogfQogCiBQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
PiBNZWRpYVN0cmVhbTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+JiB0cmFja3MpCkBAIC03NCwzNSAr
NzUsMzUgQEAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb24KICAgICAgICAgICAgIHZpZGVvVHJhY2tz
LmFwcGVuZCgmdHJhY2tzW2ldLT5wcml2YXRlVHJhY2soKSk7CiAgICAgfQogCi0gICAgcmV0dXJu
IE1lZGlhU3RyZWFtOjpjcmVhdGUoY29udGV4dCwgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpjcmVh
dGUoYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzKSk7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpj
cmVhdGUoY29udGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoYXVkaW9UcmFja3MsIHZp
ZGVvVHJhY2tzKSk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbURlc2NyaXB0b3I+IHN0cmVhbURlc2NyaXB0b3IpCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
PiBNZWRpYVN0cmVhbTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBwcml2YXRlU3RyZWFtKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW0oY29udGV4dCwgc3RyZWFtRGVzY3JpcHRvcikpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW0oY29udGV4dCwgcHJpdmF0ZVN0cmVh
bSkpOwogfQogCi1NZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0cmVhbURlc2Ny
aXB0b3IpCitNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IHByaXZhdGVTdHJlYW0pCiAg
ICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKLSAgICAsIG1fZGVzY3Jp
cHRvcihzdHJlYW1EZXNjcmlwdG9yKQorICAgICwgbV9wcml2YXRlKHByaXZhdGVTdHJlYW0pCiAg
ICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIodGhpcywgJk1lZGlhU3RyZWFtOjpzY2hlZHVsZWRF
dmVudFRpbWVyRmlyZWQpCiB7Ci0gICAgQVNTRVJUKG1fZGVzY3JpcHRvcik7Ci0gICAgbV9kZXNj
cmlwdG9yLT5zZXRDbGllbnQodGhpcyk7CisgICAgQVNTRVJUKG1fcHJpdmF0ZSk7CisgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQodGhpcyk7CiAKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4g
dHJhY2s7Ci0gICAgc2l6ZV90IG51bWJlck9mQXVkaW9UcmFja3MgPSBtX2Rlc2NyaXB0b3ItPm51
bWJlck9mQXVkaW9UcmFja3MoKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZBdWRpb1RyYWNrcyA9IG1f
cHJpdmF0ZS0+bnVtYmVyT2ZBdWRpb1RyYWNrcygpOwogICAgIG1fYXVkaW9UcmFja3MucmVzZXJ2
ZUNhcGFjaXR5KG51bWJlck9mQXVkaW9UcmFja3MpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbnVtYmVyT2ZBdWRpb1RyYWNrczsgaSsrKSB7Ci0gICAgICAgIHRyYWNrID0gQXVkaW9TdHJl
YW1UcmFjazo6Y3JlYXRlKGNvbnRleHQsICptX2Rlc2NyaXB0b3ItPmF1ZGlvVHJhY2tzKGkpKTsK
KyAgICAgICAgdHJhY2sgPSBBdWRpb1N0cmVhbVRyYWNrOjpjcmVhdGUoY29udGV4dCwgKm1fcHJp
dmF0ZS0+YXVkaW9UcmFja3MoaSkpOwogICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhpcyk7
CiAgICAgICAgIG1fYXVkaW9UcmFja3MuYXBwZW5kKHRyYWNrLnJlbGVhc2UoKSk7CiAgICAgfQog
Ci0gICAgc2l6ZV90IG51bWJlck9mVmlkZW9UcmFja3MgPSBtX2Rlc2NyaXB0b3ItPm51bWJlck9m
VmlkZW9UcmFja3MoKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZWaWRlb1RyYWNrcyA9IG1fcHJpdmF0
ZS0+bnVtYmVyT2ZWaWRlb1RyYWNrcygpOwogICAgIG1fdmlkZW9UcmFja3MucmVzZXJ2ZUNhcGFj
aXR5KG51bWJlck9mVmlkZW9UcmFja3MpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVt
YmVyT2ZWaWRlb1RyYWNrczsgaSsrKSB7Ci0gICAgICAgIHRyYWNrID0gVmlkZW9TdHJlYW1UcmFj
azo6Y3JlYXRlKGNvbnRleHQsICptX2Rlc2NyaXB0b3ItPnZpZGVvVHJhY2tzKGkpKTsKKyAgICAg
ICAgdHJhY2sgPSBWaWRlb1N0cmVhbVRyYWNrOjpjcmVhdGUoY29udGV4dCwgKm1fcHJpdmF0ZS0+
dmlkZW9UcmFja3MoaSkpOwogICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhpcyk7CiAgICAg
ICAgIG1fdmlkZW9UcmFja3MuYXBwZW5kKHRyYWNrLnJlbGVhc2UoKSk7CiAgICAgfQpAQCAtMTEw
LDE5ICsxMTEsMTkgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0KIAogTWVkaWFTdHJlYW06On5N
ZWRpYVN0cmVhbSgpCiB7Ci0gICAgbV9kZXNjcmlwdG9yLT5zZXRDbGllbnQoMCk7CisgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQoMCk7CiB9CiAKIGJvb2wgTWVkaWFTdHJlYW06OmVuZGVkKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9kZXNjcmlwdG9yLT5lbmRlZCgpOworICAgIHJldHVybiBtX3By
aXZhdGUtPmVuZGVkKCk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW06OnNldEVuZGVkKCkKIHsKICAg
ICBpZiAoZW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fZGVzY3JpcHRvci0+c2V0RW5k
ZWQoKTsKKyAgICBtX3ByaXZhdGUtPnNldEVuZGVkKCk7CiB9CiAKIFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgpCkBAIC0xNjcsNyArMTY4LDcgQEAgYm9vbCBNZWRp
YVN0cmVhbTo6YWRkVHJhY2soUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBwcnBUcmFjaykK
IAogICAgIHRyYWNrcy0+YXBwZW5kKHRyYWNrKTsKICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhp
cyk7Ci0gICAgbV9kZXNjcmlwdG9yLT5hZGRUcmFjaygmdHJhY2stPnByaXZhdGVUcmFjaygpKTsK
KyAgICBtX3ByaXZhdGUtPmFkZFRyYWNrKCZ0cmFjay0+cHJpdmF0ZVRyYWNrKCkpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0xOTgsMTMgKzE5OSwxMyBAQCBib29sIE1lZGlhU3RyZWFtOjpy
ZW1vdmVUcmFjayhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHBycFRyYWNrKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICB0cmFja3MtPnJlbW92ZShwb3MpOwotICAgIG1fZGVzY3Jp
cHRvci0+cmVtb3ZlVHJhY2soJnRyYWNrLT5wcml2YXRlVHJhY2soKSk7CisgICAgbV9wcml2YXRl
LT5yZW1vdmVUcmFjaygmdHJhY2stPnByaXZhdGVUcmFjaygpKTsKICAgICAvLyBUaGVyZSBjYW4g
YmUgb3RoZXIgdHJhY2tzIHVzaW5nIHRoZSBzYW1lIHNvdXJjZSBpbiB0aGUgc2FtZSBNZWRpYVN0
cmVhbSwKICAgICAvLyBsaWtlIHdoZW4gTWVkaWFTdHJlYW1UcmFjazo6Y2xvbmUoKSBpcyBjYWxs
ZWQsIGZvciBpbnN0YW5jZS4KICAgICAvLyBTcGVjIHNheXMgdGhhdCBhIHNvdXJjZSBjYW4gYmUg
c2hhcmVkLCBzbyB3ZSBtdXN0IGFzc3VyZSB0aGF0IHRoZXJlIGlzIG5vCiAgICAgLy8gb3RoZXIg
dHJhY2sgdXNpbmcgaXQuCiAgICAgaWYgKCFoYXZlVHJhY2tXaXRoU291cmNlKHRyYWNrLT5zb3Vy
Y2UoKSkpCi0gICAgICAgIG1fZGVzY3JpcHRvci0+cmVtb3ZlU291cmNlKHRyYWNrLT5zb3VyY2Uo
KSk7CisgICAgICAgIG1fcHJpdmF0ZS0+cmVtb3ZlU291cmNlKHRyYWNrLT5zb3VyY2UoKSk7CiAK
ICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CiAgICAgaWYgKCFtX2F1ZGlvVHJhY2tz
LnNpemUoKSAmJiAhbV92aWRlb1RyYWNrcy5zaXplKCkpCkBAIC0yOTMsMTEgKzI5NCwxMSBAQCB2
b2lkIE1lZGlhU3RyZWFtOjpyZW1vdmVSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqIHNv
dXJjZSkKICAgICAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHRyYWNrID0gKCp0cmFja3Mp
W2ldOwogICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CiAgICAgICAgIHRyYWNr
cy0+cmVtb3ZlKGkpOwotICAgICAgICBtX2Rlc2NyaXB0b3ItPnJlbW92ZVRyYWNrKCZ0cmFjay0+
cHJpdmF0ZVRyYWNrKCkpOworICAgICAgICBtX3ByaXZhdGUtPnJlbW92ZVRyYWNrKCZ0cmFjay0+
cHJpdmF0ZVRyYWNrKCkpOwogICAgICAgICBzY2hlZHVsZURpc3BhdGNoRXZlbnQoTWVkaWFTdHJl
YW1UcmFja0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlbW92ZXRyYWNrRXZlbnQsIGZhbHNl
LCBmYWxzZSwgdHJhY2sucmVsZWFzZSgpKSk7CiAgICAgfQogCi0gICAgbV9kZXNjcmlwdG9yLT5y
ZW1vdmVTb3VyY2Uoc291cmNlKTsKKyAgICBtX3ByaXZhdGUtPnJlbW92ZVNvdXJjZShzb3VyY2Up
OwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjphZGRSZW1vdGVUcmFjayhNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSogcHJpdmF0ZVRyYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDE5NmFmNTY5N2RhNjE4NTJiY2QwNzM3Y2FhNjI5
N2NmN2QzMDk5NzkuLmE1YTU3MzI0OGFlODdjNjk4MjNkMDMyNTQ4N2YzZDljOWIyNjRmYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgK
QEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zMiw3ICszMyw3IEBACiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIK
LSNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVh
bVByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTQ0LDE1ICs0NSwxNSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtQ2VudGVyOwogCi1jbGFzcyBN
ZWRpYVN0cmVhbSBGSU5BTCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiwgcHVibGlj
IFVSTFJlZ2lzdHJhYmxlLCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgTWVkaWFTdHJl
YW1EZXNjcmlwdG9yQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVi
bGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKK2NsYXNzIE1lZGlhU3RyZWFtIEZJTkFM
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+LCBwdWJsaWMgVVJMUmVnaXN0cmFibGUs
IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQs
IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2s+PiYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KTsKICAgICB2aXJ0dWFs
IH5NZWRpYVN0cmVhbSgpOwogCi0gICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9kZXNj
cmlwdG9yLT5pZCgpOyB9CisgICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRl
LT5pZCgpOyB9CiAKICAgICB2b2lkIGFkZFRyYWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
az4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZVRyYWNrKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTY5LDcgKzcwLDcgQEAgcHVibGlj
OgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoYWRkdHJhY2spOwogICAgIERF
RklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIocmVtb3ZldHJhY2spOwogCi0gICAgTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKiBkZXNjcmlwdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdG9y
LmdldCgpOyB9CisgICAgTWVkaWFTdHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKCkgY29uc3Qg
eyByZXR1cm4gbV9wcml2YXRlLmdldCgpOyB9CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBG
SU5BTCB7IHJldHVybiBNZWRpYVN0cmVhbUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpAQCAt
ODIsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnko
KSBjb25zdCBPVkVSUklERTsKIAogcHJvdGVjdGVkOgotICAgIE1lZGlhU3RyZWFtKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pOworICAg
IE1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtUHJpdmF0ZT4pOwogCiAgICAgLy8gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKICAgICB2
aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJSSURFIEZJTkFMOwpAQCAtOTIsNyAr
OTMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJS
SURFIEZJTkFMIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IE9WRVJSSURFIEZJTkFMIHsgZGVyZWYoKTsgfQogCi0gICAgLy8gTWVkaWFTdHJlYW1EZXNjcmlw
dG9yQ2xpZW50CisgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIHRyYWNrRGlkRW5kKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHN0cmVh
bURpZEVuZCgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVTb3Vy
Y2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBPVkVSUklERSBGSU5BTDsKQEAgLTExMiw3ICsxMTMsNyBA
QCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4qIHRyYWNr
VmVjdG9yRm9yVHlwZShNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZSk7CiAKLSAgICBSZWZQdHI8TWVk
aWFTdHJlYW1EZXNjcmlwdG9yPiBtX2Rlc2NyaXB0b3I7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFt
UHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+
IG1fYXVkaW9UcmFja3M7CiAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4gbV92
aWRlb1RyYWNrczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAKaW5kZXggMjk2NzE4MWM5ZjdiZjdiZGY1
YmY1ZmU3M2JlNzhmNDllZTE1NTI1OS4uMDRlZGI4YTYxOTMwZWNiZjk5YWI5NTAwNmE3NjMzNzQz
NGQ2N2JlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsMTkgKzQ2LDE5IEBA
IHZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBj
b25zdCBVUkwmIHVybCwgVVJMUmVnaXN0CiB7CiAgICAgQVNTRVJUKCZzdHJlYW0tPnJlZ2lzdHJ5
KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3N0cmVhbURl
c2NyaXB0b3JzLnNldCh1cmwuc3RyaW5nKCksIHN0YXRpY19jYXN0PE1lZGlhU3RyZWFtKj4oc3Ry
ZWFtKS0+ZGVzY3JpcHRvcigpKTsKKyAgICBtX3ByaXZhdGVTdHJlYW1zLnNldCh1cmwuc3RyaW5n
KCksIHN0YXRpY19jYXN0PE1lZGlhU3RyZWFtKj4oc3RyZWFtKS0+cHJpdmF0ZVN0cmVhbSgpKTsK
IH0KIAogdm9pZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyVVJMKGNvbnN0IFVSTCYg
dXJsKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdHJlYW1EZXNjcmlw
dG9ycy5yZW1vdmUodXJsLnN0cmluZygpKTsKKyAgICBtX3ByaXZhdGVTdHJlYW1zLnJlbW92ZSh1
cmwuc3RyaW5nKCkpOwogfQogCi1NZWRpYVN0cmVhbURlc2NyaXB0b3IqIE1lZGlhU3RyZWFtUmVn
aXN0cnk6Omxvb2t1cE1lZGlhU3RyZWFtRGVzY3JpcHRvcihjb25zdCBTdHJpbmcmIHVybCkKK01l
ZGlhU3RyZWFtUHJpdmF0ZSogTWVkaWFTdHJlYW1SZWdpc3RyeTo6bG9va3VwTWVkaWFTdHJlYW1Q
cml2YXRlKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgcmV0dXJuIG1fc3RyZWFtRGVzY3JpcHRvcnMuZ2V0KHVybCk7CisgICAgcmV0dXJuIG1f
cHJpdmF0ZVN0cmVhbXMuZ2V0KHVybCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1S
ZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVJlZ2lzdHJ5LmgKaW5kZXggZjMwNDQ2NzRhZmEwMThmYjYzOGUyODg3YTZmNTdhMTRjMmY1NDY2
ZC4uOGViZDJjN2ZlNmU5N2U5NDgyNGU0NzQ3NGNhMmE1Zjg1Y2E2NTc5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lz
dHJ5LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNiw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgVVJMOwogY2xhc3MgTWVkaWFTdHJlYW07Ci1jbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7
CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiAKIGNsYXNzIE1lZGlhU3RyZWFtUmVnaXN0cnkg
OiBwdWJsaWMgVVJMUmVnaXN0cnkgewogcHVibGljOgpAQCAtNDcsMTAgKzQ4LDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBV
UkwmLCBVUkxSZWdpc3RyYWJsZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyVVJMKGNvbnN0IFVSTCYpIE9WRVJSSURFOwogCi0gICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9y
KiBsb29rdXBNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIE1l
ZGlhU3RyZWFtUHJpdmF0ZSogbG9va3VwTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYg
dXJsKTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFt
RGVzY3JpcHRvcj4+IG1fc3RyZWFtRGVzY3JpcHRvcnM7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+PiBtX3ByaXZhdGVTdHJlYW1zOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYzJmNDE3NjY0N2RlNTlhMmQzMWRl
ODNkNTMzZmJkOGZmM2JmMGU5Mi4uNDc2ZGVjMTAzMmUxOGNiZTk5NTQ3ODEyY2IwYTM3NDczZmFi
ZTg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDEsNyBAQAogI2luY2x1ZGUgIk1lZGlh
U291cmNlU3RhdGVzLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRp
YVN0cmVhbUNlbnRlci5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgorI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzQ2FsbGJhY2suaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3QuaCIKICNpbmNsdWRlICJNZWRpYVRyYWNrQ29uc3RyYWludHMuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXgg
ZWFjNThiOTQzZGU2NzBkNTc4Zjg5NDk3MDhmZjFlZTRkMGEzOGVjMC4uODQ4M2RmOTNkYTE4OWNh
NzY2NjFhOTU2MDg4YWY1NzE3MDc0MzlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTIsNiArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IGIzYThmZmU0ZTRjNWZlMjBkZTg2NmQxY2QzZWVjZDFjYzg5MTNkMTYuLjg3MGIxOGMxNjFm
NzUzNGY4OTBmZjMxODlhYzQ5NTcwYzAyMWI1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzg0LDcgKzM4NSw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmFkZFN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0sIGNvbnN0IERpY3RpCiAKICAgICBtX2xvY2Fs
U3RyZWFtcy5hcHBlbmQoc3RyZWFtKTsKIAotICAgIGJvb2wgdmFsaWQgPSBtX3BlZXJIYW5kbGVy
LT5hZGRTdHJlYW0oc3RyZWFtLT5kZXNjcmlwdG9yKCksIGNvbnN0cmFpbnRzKTsKKyAgICBib29s
IHZhbGlkID0gbV9wZWVySGFuZGxlci0+YWRkU3RyZWFtKHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgp
LCBjb25zdHJhaW50cyk7CiAgICAgaWYgKCF2YWxpZCkKICAgICAgICAgZWMgPSBTWU5UQVhfRVJS
OwogfQpAQCAtNDA5LDcgKzQxMCw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnJlbW92ZVN0
cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0sIEV4Y2VwdGlvCiAKICAgICBt
X2xvY2FsU3RyZWFtcy5yZW1vdmUocG9zKTsKIAotICAgIG1fcGVlckhhbmRsZXItPnJlbW92ZVN0
cmVhbShzdHJlYW0tPmRlc2NyaXB0b3IoKSk7CisgICAgbV9wZWVySGFuZGxlci0+cmVtb3ZlU3Ry
ZWFtKHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKIH0KIAogTWVkaWFTdHJlYW1WZWN0b3IgUlRD
UGVlckNvbm5lY3Rpb246OmdldExvY2FsU3RyZWFtcygpIGNvbnN0CkBAIC01NDEsMjYgKzU0Miwy
NiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRDaGFuZ2VJY2VDb25uZWN0aW9uU3RhdGUo
SWNlQ29ubmVjdGlvblN0YXRlIG5ld1N0YXRlKQogICAgIGNoYW5nZUljZUNvbm5lY3Rpb25TdGF0
ZShuZXdTdGF0ZSk7CiB9CiAKLXZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmRpZEFkZFJlbW90ZVN0
cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3RyZWFtRGVzY3JpcHRvcikK
K3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmRpZEFkZFJlbW90ZVN0cmVhbShQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtUHJpdmF0ZT4gcHJpdmF0ZVN0cmVhbSkKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CiAKICAgICBpZiAobV9zaWduYWxp
bmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZUNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
UmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIHN0cmVhbURlc2NyaXB0b3IpOworICAgIFJlZlB0cjxNZWRpYVN0
cmVhbT4gc3RyZWFtID0gTWVkaWFTdHJlYW06OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCBwcml2YXRlU3RyZWFtKTsKICAgICBtX3JlbW90ZVN0cmVhbXMuYXBwZW5kKHN0cmVhbSk7
CiAKICAgICBzY2hlZHVsZURpc3BhdGNoRXZlbnQoTWVkaWFTdHJlYW1FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5hZGRzdHJlYW1FdmVudCwgZmFsc2UsIGZhbHNlLCBzdHJlYW0ucmVsZWFzZSgp
KSk7CiB9CiAKLXZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmRpZFJlbW92ZVJlbW90ZVN0cmVhbShN
ZWRpYVN0cmVhbURlc2NyaXB0b3IqIHN0cmVhbURlc2NyaXB0b3IpCit2b2lkIFJUQ1BlZXJDb25u
ZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFTdHJlYW1Qcml2YXRlKiBwcml2YXRl
U3RyZWFtKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4
dFRocmVhZCgpKTsKLSAgICBBU1NFUlQoc3RyZWFtRGVzY3JpcHRvci0+Y2xpZW50KCkpOworICAg
IEFTU0VSVChwcml2YXRlU3RyZWFtLT5jbGllbnQoKSk7CiAKLSAgICAvLyBGSVhNRTogdGhpcyBj
bGFzcyBzaG91bGRuJ3Qga25vdyB0aGF0IHRoZSBkZXNjcmlwdG9yIGNsaWVudCBpcyBhIE1lZGlh
U3RyZWFtIQotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gc3RhdGljX2Nhc3Q8TWVk
aWFTdHJlYW0qPihzdHJlYW1EZXNjcmlwdG9yLT5jbGllbnQoKSk7CisgICAgLy8gRklYTUU6IHRo
aXMgY2xhc3Mgc2hvdWxkbid0IGtub3cgdGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlz
IGEgTWVkaWFTdHJlYW0hCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNf
Y2FzdDxNZWRpYVN0cmVhbSo+KHByaXZhdGVTdHJlYW0tPmNsaWVudCgpKTsKICAgICBzdHJlYW0t
PnNldEVuZGVkKCk7CiAKICAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0
ZUNsb3NlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBkZjI4MjQ0NjhjZGFiOWQ0ZjNiYmU1MmQ1OWE4ZDUw
ZTBiZDUzMTYwLi40NzY0OGZhODZmOTgyYzdiNWJiMGZkNWRiMWQ3MDFlZWRmOGFhYzEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTE1LDggKzExNiw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlU2lnbmFsaW5nU3RhdGUoU2lnbmFsaW5nU3RhdGUpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdT
dGF0ZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUljZUNvbm5lY3Rpb25T
dGF0ZShJY2VDb25uZWN0aW9uU3RhdGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRSZW1vdGVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtRGVz
Y3JpcHRvciopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVTdHJlYW0o
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtUHJpdmF0ZSopIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVEYXRhQ2hhbm5lbChQYXNzT3duUHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4pIE9WRVJSSURFOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwCmluZGV4IGY1OTg2NmNhY2RjM2UyOTUyYzQ1MTk0MGIwNWUyODM0ZGMzZjYwNjMuLmVk
NDQzODA5YTViM2U3NzllNjQ0MjJiMmQ1ZjgwZmVlMmI3MjdhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApA
QCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTQyLDcgKzQzLDcgQEAKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKLSNp
bmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVBy
aXZhdGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgpAQCAtMTUwLDIwICsx
NTEsMjAgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50c0ludmFsaWQoY29uc3Qg
U3RyaW5nJiBjb25zdHJhaW50TmFtZSkKICAgICBmYWlsZWRUb0NyZWF0ZVN0cmVhbVdpdGhDb25z
dHJhaW50c0Vycm9yKGNvbnN0cmFpbnROYW1lKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0
OjpkaWRDcmVhdGVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0cmVh
bURlc2NyaXB0b3IpCit2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRpZENyZWF0ZVN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gcHJpdmF0ZVN0cmVhbSkKIHsKICAgICBpZiAoIW1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhbV9zdWNjZXNzQ2FsbGJhY2spCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmVXNlck1lZGlhUmVxdWVzdDo6Y2Fs
bFN1Y2Nlc3NIYW5kbGVyLCB0aGlzLCBzdHJlYW1EZXNjcmlwdG9yKSk7CisgICAgY2FsbE9uTWFp
blRocmVhZChiaW5kKCZVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsU3VjY2Vzc0hhbmRsZXIsIHRoaXMs
IHByaXZhdGVTdHJlYW0pKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsU3VjY2Vz
c0hhbmRsZXIoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0cmVhbURlc2NyaXB0
b3IpCit2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNhbGxTdWNjZXNzSGFuZGxlcihQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4gcHJpdmF0ZVN0cmVhbSkKIHsKICAgICAvLyA0IC0gQ3JlYXRl
IHRoZSBNZWRpYVN0cmVhbSBhbmQgcGFzcyBpdCB0byB0aGUgc3VjY2VzcyBjYWxsYmFjay4KICAg
ICBBU1NFUlQobV9zdWNjZXNzQ2FsbGJhY2spOwogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBz
dHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0
cmVhbURlc2NyaXB0b3IpOworICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gTWVkaWFT
dHJlYW06OmNyZWF0ZSgqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwcml2YXRlU3RyZWFtKTsK
IAogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IHRyYWNrcyA9IHN0cmVhbS0+
Z2V0QXVkaW9UcmFja3MoKTsKICAgICBmb3IgKGF1dG8gaXRlciA9IHRyYWNrcy5iZWdpbigpOyBp
dGVyICE9IHRyYWNrcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAzY2ZlZWY3OTA4ZWEy
NTYwMmMxZjFlMjBjNDMzNTVkYWFiMzllOTE1Li5kYWQ0MjdkOThmMDRkMDUyOWFlYzYwYTUzZmUz
Y2M3YjQzOWJhNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBN
ZWRpYUNvbnN0cmFpbnRzOwotY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgTWVk
aWFTdHJlYW1Qcml2YXRlOwogY2xhc3MgVXNlck1lZGlhQ29udHJvbGxlcjsKIGNsYXNzIFNlY3Vy
aXR5T3JpZ2luOwogCkBAIC03MSwxNCArNzIsMTQgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0
cmVhbUNyZWF0aW9uQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGNvbnN0cmFpbnRzVmFsaWRhdGVk
KCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGNvbnN0cmFpbnRzSW52YWxpZChj
b25zdCBTdHJpbmcmIGNvbnN0cmFpbnROYW1lKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQ3JlYXRlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPikg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVN0cmVhbShQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9p
ZCBmYWlsZWRUb0NyZWF0ZVN0cmVhbVdpdGhDb25zdHJhaW50c0Vycm9yKGNvbnN0IFN0cmluZyYg
Y29uc3RyYWludE5hbWUpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBmYWlsZWRU
b0NyZWF0ZVN0cmVhbVdpdGhQZXJtaXNzaW9uRXJyb3IoKSBPVkVSUklERSBGSU5BTDsKIAogICAg
IC8vIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRE
ZXN0cm95ZWQoKSBPVkVSUklERSBGSU5BTDsKICAgICAKLSAgICB2b2lkIGNhbGxTdWNjZXNzSGFu
ZGxlcihQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pOworICAgIHZvaWQgY2FsbFN1
Y2Nlc3NIYW5kbGVyKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPik7CiAgICAgdm9pZCBj
YWxsRXJyb3JIYW5kbGVyKFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3I+KTsKICAg
ICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKCk7CiAgICAgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNWJmZmE1MjNkZjIz
YmVlMTM1MWUxMjQ2NjA1NmY1MjY5MGQ5NTAwOS4uMjEwM2VkZjVjYTQ3NDU2NGIxYWI1Y2M1ZGUw
N2JkNDU2MTU4NWVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBA
IC01MSw3ICs1MSw3IEBAIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok1lZGlhU3Ry
ZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUoQXVkaW9Db250ZXh0KiBjCiAgICAgbV9zb3VyY2UgPSBN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjcmVhdGUoKTsKICAgICBWZWN0b3I8UmVmUHRyPE1lZGlh
U3RyZWFtU291cmNlPj4gYXVkaW9Tb3VyY2VzOwogICAgIGF1ZGlvU291cmNlcy5hcHBlbmQobV9z
b3VyY2UpOwotICAgIG1fc3RyZWFtID0gTWVkaWFTdHJlYW06OmNyZWF0ZSgqY29udGV4dC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmNyZWF0ZShhdWRp
b1NvdXJjZXMsIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PigpKSk7CisgICAgbV9z
dHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCpjb250ZXh0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKGF1ZGlvU291cmNlcywgVmVjdG9yPFJl
ZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+KCkpKTsKIAogICAgIG1fc291cmNlLT5zZXRBdWRpb0Zv
cm1hdChudW1iZXJPZkNoYW5uZWxzLCBjb250ZXh0LT5zYW1wbGVSYXRlKCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGI3
OTVlMTBjYjY3ZWY1NjM1ZTUxMjY5ZWY2NzEwNGM2M2EwYjAxOS4uM2UzYmFkYjFmODE3MGFkNDk4
MmE3MmJkNDRmNTFiMDM0ZjVhMDIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxLDcgKzEzMSw3IEBACiAJCTA3MDlGQzRF
MTAyNURFRTMwMDU5Q0RCQSAvKiBBY2Nlc3NpYmlsaXR5U2xpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RkM0RDEwMjVERUUzMDA1OUNEQkEg
LyogQWNjZXNzaWJpbGl0eVNsaWRlci5oICovOyB9OwogCQkwNzBGNTQ5ODE3RjEyRjZCMDAxNjlF
MDQgLyogTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MEY1NDk3MTdGMTJGNkIwMDE2
OUUwNCAvKiBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudC5oICovOyB9Owog
CQkwNzBGNTQ5RTE3RjI0MDI3MDAxNjlFMDQgLyogQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzBGNTQ5RDE3
RjI0MDI3MDAxNjlFMDQgLyogQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDcxMTU4OTExN0RGNkY2NjAw
RURGRTJCIC8qIE1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzExNTg4RjE3REY2MzM3MDBFREZFMkIgLyogTWVk
aWFTdHJlYW1EZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJC
IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzExNTg4RjE3REY2MzM3MDBFREZFMkIgLyogTWVkaWFTdHJlYW1Q
cml2YXRlLmNwcCAqLzsgfTsKIAkJMDcxQTlFQzIxNjhGQkM0MzAwMjYyOUY5IC8qIFRleHRUcmFj
a0N1ZUdlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcxQTlFQzAxNjhGQjU2QzAwMjYyOUY5IC8qIFRleHRUcmFja0N1ZUdlbmVyaWMuY3Bw
ICovOyB9OwogCQkwNzFBOUVDMzE2OEZCQzU1MDAyNjI5RjkgLyogVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcxQTlF
QzExNjhGQjU2QzAwMjYyOUY5IC8qIFRleHRUcmFja0N1ZUdlbmVyaWMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzIwQjBBMDE0RDMzMjM1MDA2
NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNF
dmVudFF1ZXVlLmNwcCAqLzsgfTsKQEAgLTI0MSw3ICsyNDEsNyBAQAogCQkwNzhFMDkzMzE3RDE2
QjA2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOUExN0NGMEFENDAwODQ4RTUxIC8qIE1l
ZGlhU3RyZWFtQ2VudGVyLmNwcCAqLzsgfTsKIAkJMDc4RTA5MzQxN0QxNkIwQjAwNDIwQUExIC8q
IE1lZGlhU3RyZWFtQ2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzIyMUI5QjE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1DZW50ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhF
MDkzNjE3RDE2QjIxMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOUUxN0NGMEFENDAwODQ4
RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmNwcCAqLzsgfTsKLQkJMDc4RTA5MzcxN0QxNkIyQzAw
NDIwQUExIC8qIE1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOUQxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlh
U3RyZWFtRGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTA3OEUwOTM3MTdEMTZCMkMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIx
QjlEMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhFMDkzODE3RDE2QjJDMDA0
MjBBQTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjlGMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVh
bVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTA3OEUwOTM5MTdEMTZCMkMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUJB
MDE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3OEUwOTNBMTdEMTZF
MUMwMDQyMEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUI5OTE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFD
b25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC02NjAwLDcgKzY2MDAsNyBAQAogCQkwNzBERDhGNTBGMDE4NjgwMDA3MjdERUIgLyog
bWVkaWFDb250cm9scy5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gbWVkaWFDb250cm9scy5j
c3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MEY1NDk3MTdGMTJGNkIwMDE2OUUw
NCAvKiBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzBGNTQ5RDE3RjI0MDI3MDAx
NjlFMDQgLyogQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1ZGlvRGVzdGluYXRpb25Db25zdW1lci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwNzExNTg4RjE3REY2MzM3MDBFREZFMkIgLyogTWVkaWFTdHJlYW1EZXNj
cmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MTE1ODhG
MTdERjYzMzcwMEVERkUyQiAvKiBNZWRpYVN0cmVhbVByaXZhdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcxQTlFQzAxNjhGQjU2QzAwMjYyOUY5IC8qIFRleHRUcmFj
a0N1ZUdlbmVyaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4
dFRyYWNrQ3VlR2VuZXJpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MUE5
RUMxMTY4RkI1NkMwMDI2MjlGOSAvKiBUZXh0VHJhY2tDdWVHZW5lcmljLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja0N1ZUdlbmVyaWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVu
dFF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyaWNF
dmVudFF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2ODAsNyArNjY4
MCw3IEBACiAJCTA3MjIxQjk5MTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29uc3RyYWludHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMjFCOUExN0NGMEFENDAwODQ4RTUxIC8qIE1l
ZGlhU3RyZWFtQ2VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhU3RyZWFtQ2VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcy
MjFCOUIxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtQ2VudGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtQ2VudGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTA3MjIxQjlEMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbURl
c2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MjIxQjlEMTdDRjBB
RDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3MjIxQjlFMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVNvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbVNvdXJjZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjlGMTdDRjBBRDQwMDg0OEU1
MSAvKiBNZWRpYVN0cmVhbVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVN0cmVhbVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIy
MUJBMDE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzU5OSw4ICsxMzU5OSw4IEBACiAJCQkJ
MDcyMjFCOUIxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtQ2VudGVyLmggKi8sCiAJCQkJ
MDcwRjU0OTcxN0YxMkY2QjAwMTY5RTA0IC8qIE1lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0
aW9uQ2xpZW50LmggKi8sCiAJCQkJMDcyMjFCQTAxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCAqLywKLQkJCQkwNzExNTg4RjE3REY2MzM3MDBFREZFMkIgLyog
TWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcCAqLywKLQkJCQkwNzIyMUI5RDE3Q0YwQUQ0MDA4NDhF
NTEgLyogTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmggKi8sCisJCQkJMDcxMTU4OEYxN0RGNjMzNzAw
RURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgKi8sCisJCQkJMDcyMjFCOUQxN0NGMEFE
NDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5oICovLAogCQkJCTA3MjIxQjlFMTdDRjBB
RDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVNvdXJjZS5jcHAgKi8sCiAJCQkJMDcyMjFCOUYxN0NG
MEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmggKi8sCiAJCQkJMDcwNTg0RkIxN0Y5
RDZERjAwNUYyQkNCIC8qIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmggKi8sCkBAIC0y
MjI4Miw3ICsyMjI4Miw3IEBACiAJCQkJODVBQ0E5ODYwQTlCNTIwMzAwNjcxRTkwIC8qIERPTUNo
YXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMThGMEFDNUQ1MzUwMDUzMjcw
RiAvKiBET01DaGFyYWN0ZXJEYXRhSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDg5
Q0Q5MEE5OEM0MjgwMEEyNzVBQSAvKiBET01Db21tZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkw
NzhFMDkzNzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwNzhFMDkzNzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5MDBBQzVENTM1MDA1MzI3MEYgLyogRE9N
Q29tbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBMzdBRjA5N0M3MTVGMDAx
OUYzRDggLyogRE9NQ29yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MEQ2RTkwRDI4RDgzNDAw
Qjk5MThGIC8qIERPTUNvcmVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjcwNjgsNyAr
MjcwNjgsNyBAQAogCQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0
Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyog
TWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDY3MUE3NzE1OUJC
MDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtRGVzY3JpcHRv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzExNTg5MTE3REY2RjY2MDBFREZFMkIgLyogTWVk
aWFTdHJlYW1Qcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzE3MDk3OUMzQkQw
MDQ2Nzc0MSAvKiBNZW1vcnlDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTdFREEwODEz
ODVDQjk3MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTY1N0VEQTBCMTM4NUNCRDgwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXJN
YWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IDRiMGM1YzdjYzNjMzE1NWFjMGZiZDQ3ZWMzZDg2NmNhODgwZTg2ZjIuLmUwZDY5
YTZhYjE2YmMzYWJlODk5ZmU1M2Y2NDNkZmM4YmM1NWU3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTA4Niw3ICsxMDg2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlw
ZSYgY29udGVudFQKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3Vy
Y2UgLSBtX2N1cnJlbnRTcmMgLT4gJXMiLCB1cmxGb3JMb2dnaW5nTWVkaWEobV9jdXJyZW50U3Jj
KS51dGY4KCkuZGF0YSgpKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgaWYgKE1l
ZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkubG9va3VwTWVkaWFTdHJlYW1EZXNjcmlwdG9y
KHVybC5zdHJpbmcoKSkpCisgICAgaWYgKE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCku
bG9va3VwTWVkaWFTdHJlYW1Qcml2YXRlKHVybC5zdHJpbmcoKSkpCiAgICAgICAgIHJlbW92ZUJl
aGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5nZVJlc3RyaWN0
aW9uKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVC
bGFja0JlcnJ5LmNwcAppbmRleCA3ODE5MmQ3MmFlYTg4ZjlkNjRmOGQyZjU5NjhjNjVlZmM1Y2Zh
Mjg2Li5kZWM4ZjI3MWQxYjAxZjMzN2Q5MWI4OTU1YzNkNWM2MGU5ODUzMzhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTI1LDcg
KzI1LDcgQEAKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUgIkRPTUZp
bGVTeXN0ZW1CYXNlLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgotI2luY2x1ZGUgIk1lZGlh
U3RyZWFtRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogCkBAIC04MjAsNyArODIwLDcgQEAgc3RhdGljIFdlYk1lZGlhU3RyZWFtU291cmNlIHRvV2Vi
TWVkaWFTdHJlYW1Tb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqIHNyYykKICAgICByZXR1cm4gV2Vi
TWVkaWFTdHJlYW1Tb3VyY2Uoc3JjLT5pZCgpLCBzdGF0aWNfY2FzdDxXZWJNZWRpYVN0cmVhbVNv
dXJjZTo6VHlwZT4oc3JjLT50eXBlKCkpLCBzcmMtPm5hbWUoKSk7CiB9CiAKLXN0YXRpYyBXZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3IgdG9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoTWVkaWFTdHJl
YW1EZXNjcmlwdG9yKiBkKQorc3RhdGljIFdlYk1lZGlhU3RyZWFtUHJpdmF0ZSB0b1dlYk1lZGlh
U3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUqIGQpCiB7CiAgICAgdmVjdG9yPFdlYk1l
ZGlhU3RyZWFtU291cmNlPiBhdWRpb1NvdXJjZXM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBkLT5udW1iZXJPZkF1ZGlvQ29tcG9uZW50cygpOyBpKyspCkBAIC04MzAsMTYgKzgzMCwxNiBA
QCBzdGF0aWMgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yIHRvV2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yKE1lZGlhU3RyZWFtRGVzY3JpcHRvcgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZC0+
bnVtYmVyT2ZWaWRlb0NvbXBvbmVudHMoKTsgaSsrKQogICAgICAgICB2aWRlb1NvdXJjZXMucHVz
aF9iYWNrKHRvV2ViTWVkaWFTdHJlYW1Tb3VyY2UoZC0+dmlkZW9Db21wb25lbnQoaSktPnNvdXJj
ZSgpKSk7CiAKLSAgICByZXR1cm4gV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGQtPmlkKCksIGF1
ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKTsKKyAgICByZXR1cm4gV2ViTWVkaWFTdHJlYW1Qcml2
YXRlKGQtPmlkKCksIGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKTsKIH0KIAotV2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9va3VwTWVkaWFTdHJlYW0oY29u
c3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgdXJsKQorV2ViTWVkaWFTdHJlYW1Qcml2
YXRlIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9va3VwTWVkaWFTdHJlYW0oY29uc3QgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlN0cmluZyYgdXJsKQogewotICAgIE1lZGlhU3RyZWFtRGVzY3JpcHRvciog
ZGVzY3JpcHRvciA9IE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkubG9va3VwTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmwuY19zdHIoKSkpOworICAg
IE1lZGlhU3RyZWFtUHJpdmF0ZSogZGVzY3JpcHRvciA9IE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJl
Z2lzdHJ5KCkubG9va3VwTWVkaWFTdHJlYW1Qcml2YXRlKFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1
cmwuY19zdHIoKSkpOwogICAgIGlmICghZGVzY3JpcHRvcikKLSAgICAgICAgcmV0dXJuIFdlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvcigpOworICAgICAgICByZXR1cm4gV2ViTWVkaWFTdHJlYW1Qcml2
YXRlKCk7CiAKLSAgICByZXR1cm4gdG9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoZGVzY3JpcHRv
cik7CisgICAgcmV0dXJuIHRvV2ViTWVkaWFTdHJlYW1Qcml2YXRlKGRlc2NyaXB0b3IpOwogfQog
CiBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyogTWVkaWFQbGF5ZXJQcml2
YXRlOjpwbGF0Zm9ybVdpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2
YXRlQmxhY2tCZXJyeS5oCmluZGV4IDc3ZmUyODYyN2JkZGUyMGMyYzlmYjkwZWQxYWRjNzFhOWI1
YTEzZGUuLjAxODBhOTQ1ZGMzMDA4MWU3NTdkYTMyNGU0NjViYjNmNTQ5MjE5YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5
ZXJQcml2YXRlQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCkBAIC0xNjIsNyAr
MTYyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1RhYlZpc2libGUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGludCBvblNob3dFcnJvckRpYWxvZyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
UGxhdGZvcm1QbGF5ZXI6OkVycm9yKTsKICAgICB2aXJ0dWFsIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpHcmFwaGljczo6V2luZG93KiBwbGF0Zm9ybVdpbmRvdygpOwotICAgIHZpcnR1YWwgQmxhY2tC
ZXJyeTo6UGxhdGZvcm06OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBsb29rdXBNZWRpYVN0cmVh
bShjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiB1cmwpOworICAgIHZpcnR1YWwg
QmxhY2tCZXJyeTo6UGxhdGZvcm06OldlYk1lZGlhU3RyZWFtUHJpdmF0ZSBsb29rdXBNZWRpYVN0
cmVhbShjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiB1cmwpOwogCiBwcml2YXRl
OgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3Bw
CmluZGV4IDAzZWExMzk3ZTAzNDI2YWJlYzc5ZDMxYjQ5N2VmYWYyMjA2ZmNhOWEuLjM4OTEzOGM5
YjQwZWY1MTc5ZThjNGZiYjU5OWU0N2Q5YjA4Yzg2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAKQEAg
LTM1LDcgKzM1LDcgQEAKIAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCiAKLSNpbmNs
dWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZh
dGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50
LmgKaW5kZXggM2ViOTJmY2EzN2JkYTgzOWY1MDAzNDY0MjEzYWNiNTdmZDA0NmI5OC4uMjJhYTQ5
NzE0MTIyMDAyODY3MTlkOWY5NzVjM2Y1ODUzNTAyOTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ3JlYXRp
b25DbGllbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNv
bnN0cmFpbnRzVmFsaWRhdGVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb25zdHJhaW50c0lu
dmFsaWQoY29uc3QgU3RyaW5nJiBjb25zdHJhaW50TmFtZSkgPSAwOwogCi0gICAgdmlydHVhbCB2
b2lkIGRpZENyZWF0ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1Qcml2YXRlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmYWlsZWRUb0NyZWF0ZVN0cmVhbVdp
dGhDb25zdHJhaW50c0Vycm9yKGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5hbWUpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9DcmVhdGVTdHJlYW1XaXRoUGVybWlzc2lvbkVycm9yKCkg
PSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbURlc2NyaXB0b3IuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmYzU3YWRhZmRlNmQ3MjM1YTM3ZDk2NDg5Y2JmMzQyYjY5Nzg0MjA1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBB
Qi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKLQotI2luY2x1
ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCi0jaW5jbHVkZSAiVVVJRC5oIgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLVBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiBNZWRpYVN0cmVhbURl
c2NyaXB0b3I6OmNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4m
IGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+JiB2
aWRlb1NvdXJjZXMpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbURlc2Ny
aXB0b3IoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLCBhdWRpb1NvdXJjZXMsIHZpZGVvU291
cmNlcykpOwotfQotCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gTWVkaWFTdHJl
YW1EZXNjcmlwdG9yOjpjcmVhdGUoY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4+JiBhdWRpb1ByaXZhdGVUcmFja3MsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+PiYgdmlkZW9Qcml2YXRlVHJhY2tzKQotewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJp
bmcoKSwgYXVkaW9Qcml2YXRlVHJhY2tzLCB2aWRlb1ByaXZhdGVUcmFja3MpKTsKLX0KLQotdm9p
ZCBNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmFkZFNvdXJjZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
U291cmNlPiBwcnBTb3VyY2UpCi17Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiBzb3Vy
Y2UgPSBwcnBTb3VyY2U7Ci0gICAgc3dpdGNoIChzb3VyY2UtPnR5cGUoKSkgewotICAgIGNhc2Ug
TWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvOgotICAgICAgICBpZiAobV9hdWRpb1N0cmVhbVNvdXJj
ZXMuZmluZChzb3VyY2UpID09IG5vdEZvdW5kKQotICAgICAgICAgICAgbV9hdWRpb1N0cmVhbVNv
dXJjZXMuYXBwZW5kKHNvdXJjZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFTdHJl
YW1Tb3VyY2U6OlZpZGVvOgotICAgICAgICBpZiAobV92aWRlb1N0cmVhbVNvdXJjZXMuZmluZChz
b3VyY2UpID09IG5vdEZvdW5kKQotICAgICAgICAgICAgbV92aWRlb1N0cmVhbVNvdXJjZXMuYXBw
ZW5kKHNvdXJjZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6
Ok5vbmU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpyZW1vdmVTb3VyY2UoUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4gc291cmNlKQotewotICAgIHNpemVfdCBwb3MgPSBub3RG
b3VuZDsKLSAgICBzd2l0Y2ggKHNvdXJjZS0+dHlwZSgpKSB7Ci0gICAgY2FzZSBNZWRpYVN0cmVh
bVNvdXJjZTo6QXVkaW86Ci0gICAgICAgIHBvcyA9IG1fYXVkaW9TdHJlYW1Tb3VyY2VzLmZpbmQo
c291cmNlKTsKLSAgICAgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgbV9hdWRpb1N0cmVhbVNvdXJjZXMucmVtb3ZlKHBvcyk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlZpZGVvOgotICAgICAgICBwb3MgPSBt
X3ZpZGVvU3RyZWFtU291cmNlcy5maW5kKHNvdXJjZSk7Ci0gICAgICAgIGlmIChwb3MgPT0gbm90
Rm91bmQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fdmlkZW9TdHJlYW1Tb3VyY2Vz
LnJlbW92ZShwb3MpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNl
OjpOb25lOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotfQotCi12b2lkIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6YWRkUmVtb3RlU291cmNlKE1l
ZGlhU3RyZWFtU291cmNlKiBzb3VyY2UpCi17Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+YWRkUmVtb3RlU291cmNlKHNvdXJjZSk7Ci0gICAgZWxzZQotICAgICAgICBhZGRT
b3VyY2Uoc291cmNlKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbURlc2NyaXB0b3I6OnJlbW92ZVJl
bW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSogc291cmNlKQotewotICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgbV9jbGllbnQtPnJlbW92ZVJlbW90ZVNvdXJjZShzb3VyY2UpOwotICAgIGVs
c2UKLSAgICAgICAgcmVtb3ZlU291cmNlKHNvdXJjZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yOjphZGRSZW1vdGVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdHJhY2sp
Ci17Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+YWRkUmVtb3RlVHJhY2so
dHJhY2spOwotICAgIGVsc2UKLSAgICAgICAgYWRkVHJhY2sodHJhY2spOwotfQotCi12b2lkIE1l
ZGlhU3RyZWFtRGVzY3JpcHRvcjo6cmVtb3ZlUmVtb3RlVHJhY2soTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUqIHRyYWNrKQotewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnJl
bW92ZVJlbW90ZVRyYWNrKHRyYWNrKTsKLSAgICBlbHNlCi0gICAgICAgIHJlbW92ZVRyYWNrKHRy
YWNrKTsKLX0KLQotTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpNZWRpYVN0cmVhbURlc2NyaXB0b3Io
Y29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+
JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYg
dmlkZW9Tb3VyY2VzKQotICAgIDogbV9jbGllbnQoMCkKLSAgICAsIG1faWQoaWQpCi0gICAgLCBt
X2VuZGVkKGZhbHNlKQotewotICAgIEFTU0VSVChtX2lkLmxlbmd0aCgpKTsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGF1ZGlvU291cmNlcy5zaXplKCk7IGkrKykKLSAgICAgICAgYWRkVHJh
Y2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShhdWRpb1NvdXJjZXNbaV0pKTsKLQot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmlkZW9Tb3VyY2VzLnNpemUoKTsgaSsrKQotICAg
ICAgICBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKHZpZGVvU291cmNl
c1tpXSkpOwotCi0gICAgdW5zaWduZWQgcHJvdmlkZWRTb3VyY2VzU2l6ZSA9IGF1ZGlvU291cmNl
cy5zaXplKCkgKyB2aWRlb1NvdXJjZXMuc2l6ZSgpOwotICAgIHVuc2lnbmVkIHRyYWNrc1NpemUg
PSBtX2F1ZGlvUHJpdmF0ZVRyYWNrcy5zaXplKCkgKyBtX3ZpZGVvUHJpdmF0ZVRyYWNrcy5zaXpl
KCk7Ci0gICAgLy8gSWYgc291cmNlcyB3ZXJlIHByb3ZpZGVkIGFuZCBubyB0cmFjayB3YXMgYWRk
ZWQgdG8gdGhlIE1lZGlhU3RyZWFtRGVzY3JpcHRvcidzIHRyYWNrcywgdGhpcyBtZWFucwotICAg
IC8vIHRoYXQgdGhlIHRyYWNrcyB3ZXJlIGFsbCBlbmRlZAotICAgIGlmIChwcm92aWRlZFNvdXJj
ZXNTaXplID4gMCAmJiAhdHJhY2tzU2l6ZSkKLSAgICAgICAgbV9lbmRlZCA9IHRydWU7Ci19Ci0K
LU1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmlu
ZyYgaWQsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYgYXVk
aW9Qcml2YXRlVHJhY2tzLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPj4mIHZpZGVvUHJpdmF0ZVRyYWNrcykKLSAgICA6IG1fY2xpZW50KDApCi0gICAgLCBtX2lk
KGlkKQotICAgICwgbV9lbmRlZChmYWxzZSkKLXsKLSAgICBBU1NFUlQobV9pZC5sZW5ndGgoKSk7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdWRpb1ByaXZhdGVUcmFja3Muc2l6ZSgpOyBp
KyspCi0gICAgICAgIGFkZFRyYWNrKGF1ZGlvUHJpdmF0ZVRyYWNrc1tpXSk7Ci0KLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHZpZGVvUHJpdmF0ZVRyYWNrcy5zaXplKCk7IGkrKykKLSAgICAg
ICAgYWRkVHJhY2sodmlkZW9Qcml2YXRlVHJhY2tzW2ldKTsKLQotICAgIHVuc2lnbmVkIHByb3Zp
ZGVkVHJhY2tzU2l6ZSA9IGF1ZGlvUHJpdmF0ZVRyYWNrcy5zaXplKCkgKyB2aWRlb1ByaXZhdGVU
cmFja3Muc2l6ZSgpOwotICAgIHVuc2lnbmVkIHRyYWNrc1NpemUgPSBtX2F1ZGlvUHJpdmF0ZVRy
YWNrcy5zaXplKCkgKyBtX3ZpZGVvUHJpdmF0ZVRyYWNrcy5zaXplKCk7Ci0gICAgLy8gSWYgdHJh
Y2tzIHdlcmUgcHJvdmlkZWQgYW5kIG5vIG9uZSB3YXMgYWRkZWQgdG8gdGhlIE1lZGlhU3RyZWFt
RGVzY3JpcHRvcidzIHRyYWNrcywgdGhpcyBtZWFucwotICAgIC8vIHRoYXQgdGhlIHRyYWNrcyB3
ZXJlIGFsbCBlbmRlZAotICAgIGlmIChwcm92aWRlZFRyYWNrc1NpemUgPiAwICYmICF0cmFja3NT
aXplKQotICAgICAgICBtX2VuZGVkID0gdHJ1ZTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbURlc2Ny
aXB0b3I6OnNldEVuZGVkKCkKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50
LT5zdHJlYW1EaWRFbmQoKTsKLQotICAgIG1fZW5kZWQgPSB0cnVlOwotfQotCi12b2lkIE1lZGlh
U3RyZWFtRGVzY3JpcHRvcjo6YWRkVHJhY2soUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gcHJwVHJhY2spCi17Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiB0
cmFjayA9IHBycFRyYWNrOwotICAgIGlmICh0cmFjay0+ZW5kZWQoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiB0cmFja3Mg
PSB0cmFjay0+dHlwZSgpID09IE1lZGlhU3RyZWFtU291cmNlOjpBdWRpbyA/IG1fYXVkaW9Qcml2
YXRlVHJhY2tzIDogbV92aWRlb1ByaXZhdGVUcmFja3M7Ci0KLSAgICBzaXplX3QgcG9zID0gdHJh
Y2tzLmZpbmQodHJhY2spOwotICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHRyYWNrcy5hcHBlbmQodHJhY2spOwotICAgIGlmICh0cmFjay0+c291cmNlKCkp
Ci0gICAgICAgIGFkZFNvdXJjZSh0cmFjay0+c291cmNlKCkpOwotfQotCi12b2lkIE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcjo6cmVtb3ZlVHJhY2soUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gdHJhY2spCi17Ci0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZT4+JiB0cmFja3MgPSB0cmFjay0+dHlwZSgpID09IE1lZGlhU3RyZWFtU291cmNlOjpBdWRpbyA/
IG1fYXVkaW9Qcml2YXRlVHJhY2tzIDogbV92aWRlb1ByaXZhdGVUcmFja3M7Ci0KLSAgICBzaXpl
X3QgcG9zID0gdHJhY2tzLmZpbmQodHJhY2spOwotICAgIGlmIChwb3MgPT0gbm90Rm91bmQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHRyYWNrcy5yZW1vdmUocG9zKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3Jp
cHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyMDgxZjViM2RlNWU0
YjA3NmY2ZGMxNThjNGQyY2QyODgwY2FmMzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1EZXNjcmlwdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiAgICBkaXN0cmlidXRpb24uCi0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEVyaWNzc29uIG5v
ciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgTWVkaWFTdHJlYW1EZXNjcmlwdG9yX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1EZXNj
cmlwdG9yX2gKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJNZWRpYVN0
cmVhbVNvdXJjZS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKLSNpbmNsdWRlICJN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOwotCi1jbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3JDbGll
bnQgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjazo6T2JzZXJ2ZXIgewotcHVibGljOgotICAgIHZp
cnR1YWwgfk1lZGlhU3RyZWFtRGVzY3JpcHRvckNsaWVudCgpIHsgfQotCi0gICAgdmlydHVhbCB2
b2lkIHN0cmVhbURpZEVuZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlU291cmNl
KE1lZGlhU3RyZWFtU291cmNlKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVSZW1vdGVT
b3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFkZFJlbW90
ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVSZW1vdGVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSopID0gMDsKLX07Ci0KLWNs
YXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFt
RGVzY3JpcHRvcj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
RGVzY3JpcHRvcj4gY3JlYXRlKGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+
PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4m
IHZpZGVvU291cmNlcyk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlw
dG9yPiBjcmVhdGUoY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+
JiBhdWRpb1ByaXZhdGVUcmFja3MsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+PiYgdmlkZW9Qcml2YXRlVHJhY2tzKTsKLQotICAgIHZpcnR1YWwgfk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcigpIHsgfQotCi0gICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50KiBj
bGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQotICAgIHZvaWQgc2V0Q2xpZW50KE1l
ZGlhU3RyZWFtRGVzY3JpcHRvckNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9
Ci0KLSAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0KLSAgICB1bnNpZ25l
ZCBudW1iZXJPZkF1ZGlvU291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9TdHJlYW1Tb3Vy
Y2VzLnNpemUoKTsgfQotICAgIE1lZGlhU3RyZWFtU291cmNlKiBhdWRpb1NvdXJjZXModW5zaWdu
ZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9TdHJlYW1Tb3VyY2VzW2luZGV4XS5nZXQo
KTsgfQotCi0gICAgdW5zaWduZWQgbnVtYmVyT2ZWaWRlb1NvdXJjZXMoKSBjb25zdCB7IHJldHVy
biBtX3ZpZGVvU3RyZWFtU291cmNlcy5zaXplKCk7IH0KLSAgICBNZWRpYVN0cmVhbVNvdXJjZSog
dmlkZW9Tb3VyY2VzKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3ZpZGVvU3RyZWFt
U291cmNlc1tpbmRleF0uZ2V0KCk7IH0KLQotICAgIHVuc2lnbmVkIG51bWJlck9mQXVkaW9UcmFj
a3MoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvUHJpdmF0ZVRyYWNrcy5zaXplKCk7IH0KLSAgICBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFja3ModW5zaWduZWQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIG1fYXVkaW9Qcml2YXRlVHJhY2tzW2luZGV4XS5nZXQoKTsgfQotCi0gICAgdW5z
aWduZWQgbnVtYmVyT2ZWaWRlb1RyYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Qcml2YXRl
VHJhY2tzLnNpemUoKTsgfQotICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNr
cyh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV92aWRlb1ByaXZhdGVUcmFja3NbaW5k
ZXhdLmdldCgpOyB9Ci0KLSAgICB2b2lkIGFkZFNvdXJjZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
U291cmNlPik7Ci0gICAgdm9pZCByZW1vdmVTb3VyY2UoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNv
dXJjZT4pOwotCi0gICAgdm9pZCBhZGRSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKTsK
LSAgICB2b2lkIHJlbW92ZVJlbW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSopOwotCi0gICAg
Ym9vbCBlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kZWQ7IH0KLSAgICB2b2lkIHNldEVuZGVk
KCk7Ci0KLSAgICB2b2lkIGFkZFRyYWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+KTsKLSAgICB2b2lkIHJlbW92ZVRyYWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+KTsKLQotICAgIHZvaWQgYWRkUmVtb3RlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUqKTsKLSAgICB2b2lkIHJlbW92ZVJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Kik7Ci0KLXByaXZhdGU6Ci0gICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYg
aWQsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYgYXVkaW9Tb3VyY2Vz
LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4mIHZpZGVvU291cmNlcyk7
Ci0gICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYgYXVkaW9Qcml2YXRlVHJhY2tzLCBj
b25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIHZpZGVvUHJpdmF0
ZVRyYWNrcyk7Ci0KLSAgICBNZWRpYVN0cmVhbURlc2NyaXB0b3JDbGllbnQqIG1fY2xpZW50Owot
ICAgIFN0cmluZyBtX2lkOwotICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiBt
X2F1ZGlvU3RyZWFtU291cmNlczsKLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNl
Pj4gbV92aWRlb1N0cmVhbVNvdXJjZXM7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlPj4gbV9hdWRpb1ByaXZhdGVUcmFja3M7Ci0gICAgVmVjdG9yPFJlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdmlkZW9Qcml2YXRlVHJhY2tzOwotICAgIGJvb2wg
bV9lbmRlZDsKLX07Ci0KLXR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0
b3I+PiBNZWRpYVN0cmVhbURlc2NyaXB0b3JWZWN0b3I7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBNZWRpYVN0
cmVhbURlc2NyaXB0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcxNDBhZDIz
YTc2ZmU2ZmYzNmNjMjE4ZDRlNDQ0MDU0MTg2NzQyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAg
LTAsMCArMSwyMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgorCisj
aW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKKyNpbmNsdWRlICJVVUlELmgiCisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFt
UHJpdmF0ZTo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYg
YXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4mIHZp
ZGVvU291cmNlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtUHJpdmF0
ZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCksIGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2Vz
KSk7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZh
dGU6OmNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4m
IGF1ZGlvUHJpdmF0ZVRyYWNrcywgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4+JiB2aWRlb1ByaXZhdGVUcmFja3MpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBNZWRpYVN0cmVhbVByaXZhdGUoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLCBhdWRpb1By
aXZhdGVUcmFja3MsIHZpZGVvUHJpdmF0ZVRyYWNrcykpOworfQorCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6YWRkU291cmNlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+IHBycFNvdXJj
ZSkKK3sKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+IHNvdXJjZSA9IHBycFNvdXJjZTsK
KyAgICBzd2l0Y2ggKHNvdXJjZS0+dHlwZSgpKSB7CisgICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJj
ZTo6QXVkaW86CisgICAgICAgIGlmIChtX2F1ZGlvU3RyZWFtU291cmNlcy5maW5kKHNvdXJjZSkg
PT0gbm90Rm91bmQpCisgICAgICAgICAgICBtX2F1ZGlvU3RyZWFtU291cmNlcy5hcHBlbmQoc291
cmNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6VmlkZW86
CisgICAgICAgIGlmIChtX3ZpZGVvU3RyZWFtU291cmNlcy5maW5kKHNvdXJjZSkgPT0gbm90Rm91
bmQpCisgICAgICAgICAgICBtX3ZpZGVvU3RyZWFtU291cmNlcy5hcHBlbmQoc291cmNlKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6Tm9uZToKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBN
ZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZVNvdXJjZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlPiBzb3VyY2UpCit7CisgICAgc2l6ZV90IHBvcyA9IG5vdEZvdW5kOworICAgIHN3aXRjaCAo
c291cmNlLT50eXBlKCkpIHsKKyAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlOjpBdWRpbzoKKyAg
ICAgICAgcG9zID0gbV9hdWRpb1N0cmVhbVNvdXJjZXMuZmluZChzb3VyY2UpOworICAgICAgICBp
ZiAocG9zID09IG5vdEZvdW5kKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2F1ZGlv
U3RyZWFtU291cmNlcy5yZW1vdmUocG9zKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRp
YVN0cmVhbVNvdXJjZTo6VmlkZW86CisgICAgICAgIHBvcyA9IG1fdmlkZW9TdHJlYW1Tb3VyY2Vz
LmZpbmQoc291cmNlKTsKKyAgICAgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgbV92aWRlb1N0cmVhbVNvdXJjZXMucmVtb3ZlKHBvcyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6Ok5vbmU6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgTWVk
aWFTdHJlYW1Qcml2YXRlOjphZGRSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqIHNvdXJj
ZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5hZGRSZW1vdGVTb3Vy
Y2Uoc291cmNlKTsKKyAgICBlbHNlCisgICAgICAgIGFkZFNvdXJjZShzb3VyY2UpOworfQorCit2
b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlUmVtb3RlU291cmNlKE1lZGlhU3RyZWFtU291
cmNlKiBzb3VyY2UpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cmVt
b3ZlUmVtb3RlU291cmNlKHNvdXJjZSk7CisgICAgZWxzZQorICAgICAgICByZW1vdmVTb3VyY2Uo
c291cmNlKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFJlbW90ZVRyYWNrKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB0cmFjaykKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgIG1fY2xpZW50LT5hZGRSZW1vdGVUcmFjayh0cmFjayk7CisgICAgZWxzZQorICAgICAgICBh
ZGRUcmFjayh0cmFjayk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVSZW1v
dGVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdHJhY2spCit7CisgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICBtX2NsaWVudC0+cmVtb3ZlUmVtb3RlVHJhY2sodHJhY2spOworICAgIGVs
c2UKKyAgICAgICAgcmVtb3ZlVHJhY2sodHJhY2spOworfQorCitNZWRpYVN0cmVhbVByaXZhdGU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBWZWN0b3I8UmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxN
ZWRpYVN0cmVhbVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpCisgICAgOiBtX2NsaWVudCgwKQorICAg
ICwgbV9pZChpZCkKKyAgICAsIG1fZW5kZWQoZmFsc2UpCit7CisgICAgQVNTRVJUKG1faWQubGVu
Z3RoKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXVkaW9Tb3VyY2VzLnNpemUoKTsg
aSsrKQorICAgICAgICBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKGF1
ZGlvU291cmNlc1tpXSkpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2aWRlb1NvdXJj
ZXMuc2l6ZSgpOyBpKyspCisgICAgICAgIGFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpjcmVhdGUodmlkZW9Tb3VyY2VzW2ldKSk7CisKKyAgICB1bnNpZ25lZCBwcm92aWRlZFNvdXJj
ZXNTaXplID0gYXVkaW9Tb3VyY2VzLnNpemUoKSArIHZpZGVvU291cmNlcy5zaXplKCk7CisgICAg
dW5zaWduZWQgdHJhY2tzU2l6ZSA9IG1fYXVkaW9Qcml2YXRlVHJhY2tzLnNpemUoKSArIG1fdmlk
ZW9Qcml2YXRlVHJhY2tzLnNpemUoKTsKKyAgICAvLyBJZiBzb3VyY2VzIHdlcmUgcHJvdmlkZWQg
YW5kIG5vIHRyYWNrIHdhcyBhZGRlZCB0byB0aGUgTWVkaWFTdHJlYW1Qcml2YXRlJ3MgdHJhY2tz
LCB0aGlzIG1lYW5zCisgICAgLy8gdGhhdCB0aGUgdHJhY2tzIHdlcmUgYWxsIGVuZGVkCisgICAg
aWYgKHByb3ZpZGVkU291cmNlc1NpemUgPiAwICYmICF0cmFja3NTaXplKQorICAgICAgICBtX2Vu
ZGVkID0gdHJ1ZTsKK30KKworTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUo
Y29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4+JiBhdWRpb1ByaXZhdGVUcmFja3MsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+PiYgdmlkZW9Qcml2YXRlVHJhY2tzKQorICAgIDogbV9jbGllbnQoMCkK
KyAgICAsIG1faWQoaWQpCisgICAgLCBtX2VuZGVkKGZhbHNlKQoreworICAgIEFTU0VSVChtX2lk
Lmxlbmd0aCgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF1ZGlvUHJpdmF0ZVRyYWNr
cy5zaXplKCk7IGkrKykKKyAgICAgICAgYWRkVHJhY2soYXVkaW9Qcml2YXRlVHJhY2tzW2ldKTsK
KworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmlkZW9Qcml2YXRlVHJhY2tzLnNpemUoKTsg
aSsrKQorICAgICAgICBhZGRUcmFjayh2aWRlb1ByaXZhdGVUcmFja3NbaV0pOworCisgICAgdW5z
aWduZWQgcHJvdmlkZWRUcmFja3NTaXplID0gYXVkaW9Qcml2YXRlVHJhY2tzLnNpemUoKSArIHZp
ZGVvUHJpdmF0ZVRyYWNrcy5zaXplKCk7CisgICAgdW5zaWduZWQgdHJhY2tzU2l6ZSA9IG1fYXVk
aW9Qcml2YXRlVHJhY2tzLnNpemUoKSArIG1fdmlkZW9Qcml2YXRlVHJhY2tzLnNpemUoKTsKKyAg
ICAvLyBJZiB0cmFja3Mgd2VyZSBwcm92aWRlZCBhbmQgbm8gb25lIHdhcyBhZGRlZCB0byB0aGUg
TWVkaWFTdHJlYW1Qcml2YXRlJ3MgdHJhY2tzLCB0aGlzIG1lYW5zCisgICAgLy8gdGhhdCB0aGUg
dHJhY2tzIHdlcmUgYWxsIGVuZGVkCisgICAgaWYgKHByb3ZpZGVkVHJhY2tzU2l6ZSA+IDAgJiYg
IXRyYWNrc1NpemUpCisgICAgICAgIG1fZW5kZWQgPSB0cnVlOworfQorCit2b2lkIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6c2V0RW5kZWQoKQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9j
bGllbnQtPnN0cmVhbURpZEVuZCgpOworCisgICAgbV9lbmRlZCA9IHRydWU7Cit9CisKK3ZvaWQg
TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlPiBwcnBUcmFjaykKK3sKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
IHRyYWNrID0gcHJwVHJhY2s7CisgICAgaWYgKHRyYWNrLT5lbmRlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIHRyYWNr
cyA9IHRyYWNrLT50eXBlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvID8gbV9hdWRpb1By
aXZhdGVUcmFja3MgOiBtX3ZpZGVvUHJpdmF0ZVRyYWNrczsKKworICAgIHNpemVfdCBwb3MgPSB0
cmFja3MuZmluZCh0cmFjayk7CisgICAgaWYgKHBvcyAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgdHJhY2tzLmFwcGVuZCh0cmFjayk7CisgICAgaWYgKHRyYWNrLT5zb3VyY2Uo
KSkKKyAgICAgICAgYWRkU291cmNlKHRyYWNrLT5zb3VyY2UoKSk7Cit9CisKK3ZvaWQgTWVkaWFT
dHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPiB0cmFjaykKK3sKKyAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Pj4mIHRyYWNrcyA9IHRyYWNrLT50eXBlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvID8g
bV9hdWRpb1ByaXZhdGVUcmFja3MgOiBtX3ZpZGVvUHJpdmF0ZVRyYWNrczsKKworICAgIHNpemVf
dCBwb3MgPSB0cmFja3MuZmluZCh0cmFjayk7CisgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgdHJhY2tzLnJlbW92ZShwb3MpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMTYxN2FhNGM0YjZiMjhiZjYzNzkzMTcyNDVkMzZjZGQxNzRkYjQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
ICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgRXJpY3Nzb24gbm9y
IHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBNZWRpYVN0cmVhbVByaXZhdGVfaAorI2RlZmluZSBNZWRpYVN0cmVhbVByaXZhdGVf
aAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291
cmNlLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU7CisKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCA6IHB1Ymxp
YyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVk
aWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtRGlk
RW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1T
b3VyY2UqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVNvdXJjZShNZWRpYVN0
cmVhbVNvdXJjZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKikgPSAwOworfTsKKworY2xhc3MgTWVkaWFTdHJl
YW1Qcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlPiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBjcmVhdGUoY29u
c3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIGF1ZGlvUHJpdmF0ZVRyYWNrcywgY29u
c3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiB2aWRlb1ByaXZhdGVU
cmFja3MpOworCisgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlKCkgeyB9CisKKyAgICBN
ZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50
OyB9CisgICAgdm9pZCBzZXRDbGllbnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQp
IHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKworICAgIFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJu
IG1faWQ7IH0KKworICAgIHVuc2lnbmVkIG51bWJlck9mQXVkaW9Tb3VyY2VzKCkgY29uc3QgeyBy
ZXR1cm4gbV9hdWRpb1N0cmVhbVNvdXJjZXMuc2l6ZSgpOyB9CisgICAgTWVkaWFTdHJlYW1Tb3Vy
Y2UqIGF1ZGlvU291cmNlcyh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1N0
cmVhbVNvdXJjZXNbaW5kZXhdLmdldCgpOyB9CisKKyAgICB1bnNpZ25lZCBudW1iZXJPZlZpZGVv
U291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9TdHJlYW1Tb3VyY2VzLnNpemUoKTsgfQor
ICAgIE1lZGlhU3RyZWFtU291cmNlKiB2aWRlb1NvdXJjZXModW5zaWduZWQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIG1fdmlkZW9TdHJlYW1Tb3VyY2VzW2luZGV4XS5nZXQoKTsgfQorCisgICAgdW5z
aWduZWQgbnVtYmVyT2ZBdWRpb1RyYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9Qcml2YXRl
VHJhY2tzLnNpemUoKTsgfQorICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNr
cyh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1ByaXZhdGVUcmFja3NbaW5k
ZXhdLmdldCgpOyB9CisKKyAgICB1bnNpZ25lZCBudW1iZXJPZlZpZGVvVHJhY2tzKCkgY29uc3Qg
eyByZXR1cm4gbV92aWRlb1ByaXZhdGVUcmFja3Muc2l6ZSgpOyB9CisgICAgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUqIHZpZGVvVHJhY2tzKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBt
X3ZpZGVvUHJpdmF0ZVRyYWNrc1tpbmRleF0uZ2V0KCk7IH0KKworICAgIHZvaWQgYWRkU291cmNl
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPik7CisKKyAgICB2b2lkIGFkZFJlbW90ZVNvdXJj
ZShNZWRpYVN0cmVhbVNvdXJjZSopOworICAgIHZvaWQgcmVtb3ZlUmVtb3RlU291cmNlKE1lZGlh
U3RyZWFtU291cmNlKik7CisKKyAgICBib29sIGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmRl
ZDsgfQorICAgIHZvaWQgc2V0RW5kZWQoKTsKKworICAgIHZvaWQgYWRkVHJhY2soUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4pOworICAgIHZvaWQgcmVtb3ZlVHJhY2soUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4pOworCisgICAgdm9pZCBhZGRSZW1vdGVUcmFj
ayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSopOworICAgIHZvaWQgcmVtb3ZlUmVtb3RlVHJhY2so
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVN0cmVhbVBy
aXZhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNv
dXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3Vy
Y2U+PiYgdmlkZW9Tb3VyY2VzKTsKKyAgICBNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgU3RyaW5n
JiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiBhdWRp
b1ByaXZhdGVUcmFja3MsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+PiYgdmlkZW9Qcml2YXRlVHJhY2tzKTsKKworICAgIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVu
dCogbV9jbGllbnQ7CisgICAgU3RyaW5nIG1faWQ7CisgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0
cmVhbVNvdXJjZT4+IG1fYXVkaW9TdHJlYW1Tb3VyY2VzOworICAgIFZlY3RvcjxSZWZQdHI8TWVk
aWFTdHJlYW1Tb3VyY2U+PiBtX3ZpZGVvU3RyZWFtU291cmNlczsKKworICAgIFZlY3RvcjxSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX2F1ZGlvUHJpdmF0ZVRyYWNrczsKKyAgICBW
ZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4gbV92aWRlb1ByaXZhdGVUcmFj
a3M7CisgICAgYm9vbCBtX2VuZGVkOworfTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1lZGlh
U3RyZWFtUHJpdmF0ZT4+IE1lZGlhU3RyZWFtUHJpdmF0ZVZlY3RvcjsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8v
IE1lZGlhU3RyZWFtUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5kZXggZjFlYWQ4MDJhMzgw
NmVjMjBiZjJjNDAyYTg0ODZiMDAyMTU0YWQ0NS4uNTNhZmI4YTFmN2FmODhhMTg0MmU3MTc2OTJj
YzAzYzE0Yjg4ZjU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuaAppbmRl
eCA2OTY2YTNiNjU5NTlhYTI5ODY3NDFkMjllNWUyMmI1M2Q0MTZhNWE2Li4xODg1NTM1MmI0YmZk
MWRiYzBhYTdmYzYwNjY3MWZjMzZiOTVmZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmgKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Niw3ICs0
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7CiBjbGFzcyBNZWRp
YUNvbnN0cmFpbnRzOwotY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgTWVkaWFT
dHJlYW1Qcml2YXRlOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM7CiAKIGNsYXNzIE1l
ZGlhU3RyZWFtU291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Tb3VyY2U+IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggZTMzMGYzYzg0YmVkMzZjM2RhMzg2YTJi
MGViMGVhZDNjZTZjMzE3ZS4uYWRmNWFhZjRjMGE1YTY0NmFlMDgyMjc0MGFlNTc0ODM0ZDIyNjg0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3Iu
aCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKQEAgLTg1LDggKzg1LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRl
SWNlKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJh
aW50cz4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8
UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSA9
IDA7Ci0gICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPikgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZh
dGU+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSA9IDA7CiAg
ICAgdmlydHVhbCBQYXNzT3duUHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNo
YW5uZWwoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0JikgPSAw
OwogICAgIHZpcnR1YWwgUGFzc093blB0cjxSVENEVE1GU2VuZGVySGFuZGxlcj4gY3JlYXRlRFRN
RlNlbmRlcihQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPikgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaAppbmRleCA5ZTIyY2U5NTQ4NmVhNmNkYWQwMWRkZDhk
NjgxNjNkMWViOGVmNDZhLi5iMDQ4MTU4MmVlMThiMTUxZDZmNTk2ZTE0MGU5ZjFkODkxMjBlZTRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaApAQCAtMzgsNyArMzgs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRv
cjsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxl
cjsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I7CiAKQEAgLTc2LDggKzc2LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTaWduYWxpbmdTdGF0ZShTaWduYWxp
bmdTdGF0ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJY2VHYXRoZXJpbmdTdGF0
ZShJY2VHYXRoZXJpbmdTdGF0ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJY2VD
b25uZWN0aW9uU3RhdGUoSWNlQ29ubmVjdGlvblN0YXRlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEFkZFJlbW90ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtRGVz
Y3JpcHRvciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkUmVtb3RlU3RyZWFtKFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1v
dmVSZW1vdGVTdHJlYW0oTWVkaWFTdHJlYW1Qcml2YXRlKikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRBZGRSZW1vdGVEYXRhQ2hhbm5lbChQYXNzT3duUHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxl
cj4pID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50
ZXJCbGFja0JlcnJ5LmNwcAppbmRleCA4NTY3NDUxNmQzOGFmYWE0YjFmOGIwZTY2YTVhNDVjYTEy
OTBjNjcwLi5hMjlhNDk4MDMyY2M2YzBjZmJiNWZmMjNmMTI3NjVlNmFiOTliNTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlh
U3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuY3BwCkBA
IC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5Lmgi
CiAKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmgiCi0jaW5jbHVkZSAiTWVk
aWFTdHJlYW1EZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRp
YVN0cmVhbUNlbnRlckJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmgKaW5kZXggZGQz
NWEyNTI3MWExNjY0MWQxZjY4ODI4Zjg1ZThmZWQ0ZmFhM2MzZC4uMmI5ZTUzMDEwOTQ0ZGQ1YzQz
MjY0ZDFlMjM0NGI1N2I3YTZiZTQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlh
U3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oCkBAIC00MSw3ICs0MSw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgTWVkaWFTdHJl
YW1Qcml2YXRlOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2U7CiBjbGFzcyBNZWRpYVN0cmVhbVNv
dXJjZXNRdWVyeUNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNl
bnRlckdTdHJlYW1lci5jcHAKaW5kZXggMTZhODZhOWYzY2IyZTBhNDNkNDEyNWI2YzhjNmEzNzlj
ODA4MDU1ZC4uNWU0ZjM0ZTg0NjhjZTY4ZWQzYzZkMDMyN2RiYzZiMmQ2YTU0NGMxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlh
U3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaCIKIAog
I2luY2x1ZGUgIk1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCIKLSNpbmNsdWRlICJNZWRpYVN0
cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNs
dWRlICJNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCmlu
ZGV4IDRlNDM1ZWNiM2RkOWY0ZjI2MTZkNjc1M2VkMTY3YTE3N2I1ZjM3MzIuLjJlOTM0MzY5OTgy
Y2NiYmVlYzBiYWE2ZmYwN2NiNDI2NmQwNWU0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
ZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCkBAIC00MSw3ICs0MSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgTWVkaWFT
dHJlYW1Qcml2YXRlOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2U7CiBjbGFzcyBNZWRpYVN0cmVh
bVNvdXJjZXNRdWVyeUNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAKaW5k
ZXggOGFjNTUxZTM5MGY5NDJmMmI1MzNmNzJmMjYyMGZmNTU4OGM0ZTIxNi4uMzcwYTUyMjc2YjQx
ZmYyYjIzOTVhYmE5NDhiOTZhMTlhNmU2MWZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJN
YWMuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKICNpbmNsdWRlICJBVkNhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oIgotI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIE1lZGlh
U3RyZWFtQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
Q3JlYXRpb25DbGllbgogICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHZpZGVvU291cmNlLnJl
bGVhc2UoKSk7CiAgICAgfQogICAgIAotICAgIGNsaWVudC0+ZGlkQ3JlYXRlU3RyZWFtKE1lZGlh
U3RyZWFtRGVzY3JpcHRvcjo6Y3JlYXRlKGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKSk7Cisg
ICAgY2xpZW50LT5kaWRDcmVhdGVTdHJlYW0oTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoYXVk
aW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKIH0KIAogYm9vbCBNZWRpYVN0cmVhbUNlbnRlck1h
Yzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
U291cmNlc1JlcXVlc3RDbGllbnQ+IHBycENsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcAppbmRleCA3MGJkNWRh
ZmY3MDA0ZTBlYWE2NDQ5Y2E3ZmQ2MmE1YTE3ZWY2ZjQ5Li4yZTg4YjY3MjcxMWFlOTAwYTI2ZmNj
OWUzNzM2NDAwNzJhOWI3OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNp
bmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ3JlYXRpb25DbGll
bnQuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRp
YVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFjay5oIgpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgTW9ja01lZGlhU3RyZWFtQ2VudGVy
OjpjcmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllCiAg
ICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2UucmVsZWFzZSgpKTsKICAgICB9
CiAgICAgCi0gICAgY2xpZW50LT5kaWRDcmVhdGVTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9y
OjpjcmVhdGUoYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKKyAgICBjbGllbnQtPmRpZENy
ZWF0ZVN0cmVhbShNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShhdWRpb1NvdXJjZXMsIHZpZGVv
U291cmNlcykpOwogfQogCiBib29sIE1vY2tNZWRpYVN0cmVhbUNlbnRlcjo6Z2V0TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RD
bGllbnQ+IHBycENsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwCmluZGV4IGE0MWNiOTdl
YThhZGNkM2ZlMDhlYTMxMTRmMjIwYjIzZDYzZjFkMjIuLjE4ZmFmMWEyZTM3NzMzYmE0MmY2ZDRh
OTQyYjk2ZjA5MzY1NjU4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcApAQCAtMTMzLDE0
ICsxMzMsMTQgQEAgYm9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjphZGRJY2VDYW5k
aWRhdGUoUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4gcmUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjphZGRTdHJlYW0oUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQor
Ym9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjphZGRTdHJlYW0oUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbVByaXZhdGU+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQogewogICAg
IC8vIFNwZWMgc3RhdGVzIHRoYXQgZXZlcnkgdGltZSBhIHN0cmVhbSBpcyBhZGRlZCwgYSBuZWdv
dGlhdGlvbm5lZWRlZCBldmVudCBtdXN0IGJlIGZpcmVkLgogICAgIG1fY2xpZW50LT5uZWdvdGlh
dGlvbk5lZWRlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2s6OnJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3Jp
cHRvcj4pCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnJlbW92ZVN0cmVhbShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pCiB7CiAgICAgLy8gU3BlYyBzdGF0ZXMgdGhh
dCBldmVyeSB0aW1lIGEgc3RyZWFtIGlzIHJlbW92ZWQsIGEgbmVnb3RpYXRpb25uZWVkZWQgZXZl
bnQgbXVzdCBiZSBmaXJlZC4KICAgICBtX2NsaWVudC0+bmVnb3RpYXRpb25OZWVkZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrLmgKaW5kZXggMDVkZGEwOTA3OTI3NzcxY2JhMzk1YTMzOWQ0MDVmYTJl
ZGNkMTc3OS4uM2Y4ZGRlOTgyZWFjODk3YmRhOTdhMTE1NGM1ZDdhYzBjZmEzOTgxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrLmgKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlw
dGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxS
VENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1
ZXN0PiwgUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRv
cj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Q
cml2YXRlPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVx
dWVzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc093blB0cjxSVENEYXRhQ2hhbm5lbEhh
bmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFJUQ0Rh
dGFDaGFubmVsSW5pdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc093blB0cjxSVENEVE1G
U2VuZGVySGFuZGxlcj4gY3JlYXRlRFRNRlNlbmRlcihQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlPikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvVXNlck1lZGlhQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvVXNlck1lZGlhQ2xpZW50SW1wbC5jcHAKaW5kZXggZjgxMWFj
MjUxYjBhNTdkZmFhYzI5Y2Q0MjFkZWVkMjNhYzdiNDUwNS4uOWM5ZGRkYjAwY2UwMjQwY2I0NWRl
YmU5Y2EwZjBmYjY0ZmJiY2MwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Vc2VyTWVkaWFDbGllbnRJbXBsLmNwcApAQCAt
MjAsMTMgKzIwLDEzIEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50SW1wbC5oIgogCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIK
KyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJQ
YWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNsaWVudC5oIgogCi0jaW5jbHVkZSA8QmxhY2tCZXJy
eVBsYXRmb3JtV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8QmxhY2tCZXJy
eVBsYXRmb3JtV2ViTWVkaWFTdHJlYW1Qcml2YXRlLmg+CiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBs
YXRmb3JtV2ViVXNlck1lZGlhUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVNvdXJjZT4gdG9NZWRpYVN0cmVhbVNvdXJjZShjb25zdCBXZWJNZWRpYVN0
cmVhbVNvdQogICAgIHJldHVybiBNZWRpYVN0cmVhbVNvdXJjZTo6Y3JlYXRlKFdURjo6U3RyaW5n
Ojpmcm9tVVRGOChzcmMuaWQoKS5jX3N0cigpKSwgc3RhdGljX2Nhc3Q8TWVkaWFTdHJlYW1Tb3Vy
Y2U6OlR5cGU+KHNyYy50eXBlKCkpLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgoc3JjLm5hbWUoKS5j
X3N0cigpKSk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4g
dG9NZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiBk
KQorc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiB0b01lZGlhU3RyZWFtUHJp
dmF0ZShjb25zdCBXZWJNZWRpYVN0cmVhbVByaXZhdGUmIGQpCiB7CiAgICAgVmVjdG9yPFJlZlB0
cjxNZWRpYVN0cmVhbVNvdXJjZT4+IGF1ZGlvU291cmNlczsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGQuYXVkaW9zKCkuc2l6ZSgpOyBpKyspIHsKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiB0b01lZGlhU3RyZWFtRGVzY3JpcHRv
cihjb25zdCBXZWJNZWRpYVMKICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChzcmMucmVsZWFz
ZSgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpjcmVhdGUo
V1RGOjpTdHJpbmc6OmZyb21VVEY4KGQubGFiZWwoKS5jX3N0cigpKSwgYXVkaW9Tb3VyY2VzLCB2
aWRlb1NvdXJjZXMpOworICAgIHJldHVybiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShXVEY6
OlN0cmluZzo6ZnJvbVVURjgoZC5sYWJlbCgpLmNfc3RyKCkpLCBhdWRpb1NvdXJjZXMsIHZpZGVv
U291cmNlcyk7CiB9CiAKIGNsYXNzIFdlYlVzZXJNZWRpYVJlcXVlc3RDbGllbnRJbXBsIDogcHVi
bGljIFdlYlVzZXJNZWRpYVJlcXVlc3RDbGllbnQgewpAQCAtNzcsMTAgKzc3LDEwIEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvciYgZCkKKyAgICB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoY29uc3Qg
V2ViTWVkaWFTdHJlYW1Qcml2YXRlJiBkKQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdCkg
ewotICAgICAgICAgICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gZGVzY3JpcHRvciA9
IHRvTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGQpOworICAgICAgICAgICAgUmVmUHRyPE1lZGlhU3Ry
ZWFtUHJpdmF0ZT4gZGVzY3JpcHRvciA9IHRvTWVkaWFTdHJlYW1Qcml2YXRlKGQpOwogICAgICAg
ICAgICAgbV9yZXF1ZXN0LT5zdWNjZWVkKGRlc2NyaXB0b3IpOwogCiAgICAgICAgICAgICB1c2Vy
TWVkaWFSZXF1ZXN0c01hcCgpLnJlbW92ZShtX3JlcXVlc3QuZ2V0KCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>