<?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>61172</bug_id>
          
          <creation_ts>2011-05-20 01:08:07 -0700</creation_ts>
          <short_desc>Fix style errors in DumpRenderTree/chromium/</short_desc>
          <delta_ts>2011-05-20 01:48:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>406930</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-20 01:08:07 -0700</bug_when>
    <thetext>Fix style errors in DumpRenderTree/chromium/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406932</commentid>
    <comment_count>1</comment_count>
      <attachid>94186</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-20 01:09:29 -0700</bug_when>
    <thetext>Created attachment 94186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406943</commentid>
    <comment_count>2</comment_count>
      <attachid>94186</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-20 01:41:23 -0700</bug_when>
    <thetext>Comment on attachment 94186
Patch

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

&gt; Tools/DumpRenderTree/chromium/DumpRenderTree.cpp:263
&gt; +        // It may have references to not-yet-cleaned up windows. By cleaning up
&gt; +        // here we help purify reports.

It seems like we can fit all of these two lines in one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406945</commentid>
    <comment_count>3</comment_count>
      <attachid>94186</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-20 01:46:38 -0700</bug_when>
    <thetext>Comment on attachment 94186
Patch

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

Thank you for reviewing.

&gt;&gt; Tools/DumpRenderTree/chromium/DumpRenderTree.cpp:263
&gt;&gt; +        // here we help purify reports.
&gt; 
&gt; It seems like we can fit all of these two lines in one line.

Yes.  But I don&apos;t like a looong comment line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406947</commentid>
    <comment_count>4</comment_count>
      <attachid>94186</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-20 01:48:24 -0700</bug_when>
    <thetext>Comment on attachment 94186
Patch

Clearing flags on attachment: 94186

Committed r86930: &lt;http://trac.webkit.org/changeset/86930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406948</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-20 01:48:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94186</attachid>
            <date>2011-05-20 01:09:29 -0700</date>
            <delta_ts>2011-05-20 01:48:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61172-20110520170927.patch</filename>
            <type>text/plain</type>
            <size>64297</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY5MjAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzM2Y4MDllY2MzNmU0OWJlODlkZjU3MWYzYzY3MjRjMGUx
ZTUxMzk4Li5lNzE0NjYxNWYzN2IyY2QzMGI0NjkwZTA1NTNiZjViMmE0Y2YxZWUyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAz
IEBACisyMDExLTA1LTIwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggc3R5bGUgZXJy
b3JzIGluIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtLy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTcyCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9DcHBCb3VuZENsYXNzLmNwcDoKKyAgICAgICAgKENwcEJvdW5kQ2xhc3M6Omdl
dEFzQ3BwVmFyaWFudCk6CisgICAgICAgIChDcHBCb3VuZENsYXNzOjpiaW5kVG9KYXZhc2NyaXB0
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBCb3VuZENsYXNzLmg6Cisg
ICAgICAgIChDcHBCb3VuZENsYXNzOjpHZXR0ZXJDYWxsYmFjazo6fkdldHRlckNhbGxiYWNrKToK
KyAgICAgICAgKENwcEJvdW5kQ2xhc3M6OkNwcEJvdW5kQ2xhc3MpOgorICAgICAgICAoQ3BwQm91
bmRDbGFzczo6Q2FsbGJhY2s6On5DYWxsYmFjayk6CisgICAgICAgIChDcHBCb3VuZENsYXNzOjpN
ZW1iZXJDYWxsYmFjazo6TWVtYmVyQ2FsbGJhY2spOgorICAgICAgICAoQ3BwQm91bmRDbGFzczo6
TWVtYmVyQ2FsbGJhY2s6On5NZW1iZXJDYWxsYmFjayk6CisgICAgICAgIChDcHBCb3VuZENsYXNz
OjpNZW1iZXJHZXR0ZXJDYWxsYmFjazo6TWVtYmVyR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAo
Q3BwQm91bmRDbGFzczo6TWVtYmVyR2V0dGVyQ2FsbGJhY2s6On5NZW1iZXJHZXR0ZXJDYWxsYmFj
ayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaDoKKyAgICAg
ICAgKERSVERldlRvb2xzQWdlbnQ6On5EUlREZXZUb29sc0FnZW50KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0NsaWVudC5jcHA6CisgICAgICAgIChEUlRE
ZXZUb29sc0NsaWVudDo6c2VuZEZyb250ZW5kTG9hZGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0NsaWVudC5oOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKFNh
dmVkRXZlbnQ6OlNhdmVkRXZlbnQpOgorICAgICAgICAoRXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVy
KToKKyAgICAgICAgKEV2ZW50U2VuZGVyOjprZXlEb3duKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0ltYWdlRGlmZi5jcHA6CisgICAgICAgIChJbWFnZTo6SW1hZ2UpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6V29ya1F1ZXVlOjpyZXNldCk6CisgICAgICAgIChXb3Jr
SXRlbUJhY2tGb3J3YXJkOjpXb3JrSXRlbUJhY2tGb3J3YXJkKToKKyAgICAgICAgKFdvcmtJdGVt
TG9hZGluZ1NjcmlwdDo6V29ya0l0ZW1Mb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdvcmtJdGVt
Tm9uTG9hZGluZ1NjcmlwdDo6V29ya0l0ZW1Ob25Mb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdv
cmtJdGVtTG9hZDo6V29ya0l0ZW1Mb2FkKToKKyAgICAgICAgKFdvcmtJdGVtTG9hZEhUTUxTdHJp
bmc6OldvcmtJdGVtTG9hZEhUTUxTdHJpbmcpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6V29ya0l0ZW06On5Xb3JrSXRlbSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
V29ya1F1ZXVlOjpXb3JrUXVldWUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L01vY2tTcGVsbENoZWNrLmNwcDoKKyAgICAgICAgKE1vY2tTcGVsbENoZWNrOjpNb2NrU3BlbGxD
aGVjayk6CisgICAgICAgIChNb2NrU3BlbGxDaGVjazo6fk1vY2tTcGVsbENoZWNrKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrU3BlbGxDaGVjay5oOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5oOgorICAgICAg
ICAoTm90aWZpY2F0aW9uUHJlc2VudGVyOjpOb3RpZmljYXRpb25QcmVzZW50ZXIpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rhc2suY3BwOgorICAgICAgICAoV2ViVGFzazo6
V2ViVGFzayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGFzay5oOgorICAg
ICAgICAoVGFza0xpc3Q6OlRhc2tMaXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0RXZlbnRQcmludGVyLmNwcDoKKyAgICAgICAgKERSVFByaW50ZXI6OkRSVFByaW50
ZXIpOgorICAgICAgICAoVGVzdFNoZWxsUHJpbnRlcjo6VGVzdFNoZWxsUHJpbnRlcik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFRlc3ROYXZpZ2F0aW9uRW50cnk6OlRlc3ROYXZpZ2F0aW9uRW50cnkpOgor
ICAgICAgICAoVGVzdE5hdmlnYXRpb25FbnRyeTo6flRlc3ROYXZpZ2F0aW9uRW50cnkpOgorICAg
ICAgICAoVGVzdE5hdmlnYXRpb25Db250cm9sbGVyOjpUZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXIp
OgorICAgICAgICAoVGVzdE5hdmlnYXRpb25Db250cm9sbGVyOjpyZWxvYWQpOgorICAgICAgICAo
VGVzdE5hdmlnYXRpb25Db250cm9sbGVyOjpsb2FkRW50cnkpOgorICAgICAgICAoVGVzdE5hdmln
YXRpb25Db250cm9sbGVyOjpkaWROYXZpZ2F0ZVRvRW50cnkpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoVGVz
dFNoZWxsRXh0cmFEYXRhOjpUZXN0U2hlbGxFeHRyYURhdGEpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChkdW1wSGlzdG9yeUl0ZW0p
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAg
ICAoVGVzdFBhcmFtczo6VGVzdFBhcmFtcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsV2luLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6d2FpdFRlc3RGaW5p
c2hlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYldvcmtlci5o
OgorICAgICAgICAoVGVzdFdlYldvcmtlcjo6c3RhcnRXb3JrZXJDb250ZXh0KToKKyAgICAgICAg
KFRlc3RXZWJXb3JrZXI6OnRlcm1pbmF0ZVdvcmtlckNvbnRleHQpOgorICAgICAgICAoVGVzdFdl
Yldvcmtlcjo6cG9zdE1lc3NhZ2VUb1dvcmtlckNvbnRleHQpOgorICAgICAgICAoVGVzdFdlYldv
cmtlcjo6Y2xpZW50RGVzdHJveWVkKToKKyAgICAgICAgKFRlc3RXZWJXb3JrZXI6OnBvc3RNZXNz
YWdlVG9Xb3JrZXJPYmplY3QpOgorICAgICAgICAoVGVzdFdlYldvcmtlcjo6cG9zdEV4Y2VwdGlv
blRvV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFRlc3RXZWJXb3JrZXI6OnBvc3RDb25zb2xlTWVz
c2FnZVRvV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFRlc3RXZWJXb3JrZXI6OmNvbmZpcm1NZXNz
YWdlRnJvbVdvcmtlck9iamVjdCk6CisgICAgICAgIChUZXN0V2ViV29ya2VyOjpyZXBvcnRQZW5k
aW5nQWN0aXZpdHkpOgorICAgICAgICAoVGVzdFdlYldvcmtlcjo6d29ya2VyQ29udGV4dENsb3Nl
ZCk6CisgICAgICAgIChUZXN0V2ViV29ya2VyOjp+VGVzdFdlYldvcmtlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5jcHA6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVGhlbWVDb250cm9sRFJUV2luLmg6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVGhlbWVFbmdpbmVEUlRNYWMuaDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUVuZ2luZURSVFdpbi5jcHA6
CisgICAgICAgIChXZWJUaGVtZUVuZ2luZURSVFdpbjo6cGFpbnRCdXR0b24pOgorICAgICAgICAo
V2ViVGhlbWVFbmdpbmVEUlRXaW46OnBhaW50TWVudUxpc3QpOgorICAgICAgICAoV2ViVGhlbWVF
bmdpbmVEUlRXaW46OnBhaW50VHJhY2tiYXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlRoZW1lRW5naW5lRFJUV2luLmg6CisgICAgICAgIChXZWJUaGVtZUVuZ2luZURS
VFdpbjo6V2ViVGhlbWVFbmdpbmVEUlRXaW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpuYXZpZ2F0ZSk6
CisgICAgICAgIChXZWJWaWV3SG9zdDo6dXBkYXRlU2Vzc2lvbkhpc3RvcnkpOgorICAgICAgICAo
V2ViVmlld0hvc3Q6OnBhaW50SW52YWxpZGF0ZWRSZWdpb24pOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisKIDIwMTEtMDUtMTkgIERtaXRyeSBMb21v
diAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVu
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwQm91bmRDbGFz
cy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBCb3VuZENsYXNzLmNwcApp
bmRleCA3ZTI0YmQzYzNlYWUzZDYxNzA2MDA0OGNkYTBjODIwNGVlZGNhZDA1Li5lNjhmMTAwYzU4
YmE1OWU2MDMyMzAxOWRlYmQ4YWZmYTdiMmU4OTEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9DcHBCb3VuZENsYXNzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9DcHBCb3VuZENsYXNzLmNwcApAQCAtOTAsNyArOTAsNyBAQCBwcml2YXRl
OgogICAgIE93blB0cjxDcHBCb3VuZENsYXNzOjpHZXR0ZXJDYWxsYmFjaz4gbV9jYWxsYmFjazsK
IH07CiAKLS8vIE91ciBzcGVjaWFsIE5QT2JqZWN0IHR5cGUuICBXZSBleHRlbmQgYW4gTlBPYmpl
Y3Qgd2l0aCBhIHBvaW50ZXIgdG8gYQorLy8gT3VyIHNwZWNpYWwgTlBPYmplY3QgdHlwZS4gV2Ug
ZXh0ZW5kIGFuIE5QT2JqZWN0IHdpdGggYSBwb2ludGVyIHRvIGEKIC8vIENwcEJvdW5kQ2xhc3Ms
IHdoaWNoIGlzIGp1c3QgYSBDKysgaW50ZXJmYWNlIHRoYXQgd2UgZm9yd2FyZCBhbGwgTlBPYmpl
Y3QKIC8vIGNhbGxiYWNrcyB0by4KIHN0cnVjdCBDcHBOUE9iamVjdCB7CkBAIC0xMTMsMjcgKzEx
MywyNyBAQCBzdHJ1Y3QgQ3BwTlBPYmplY3QgewogICAgIHN0YXRpYyB2b2lkIGRlYWxsb2NhdGUo
TlBPYmplY3QqKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgQysrIGNsYXNzIGFzc29j
aWF0ZWQgd2l0aCB0aGlzIE5QT2JqZWN0IGV4cG9zZXMgdGhlCi0gICAgLy8gZ2l2ZW4gcHJvcGVy
dHkuICBDYWxsZWQgYnkgdGhlIEpTIHJ1bnRpbWUuCisgICAgLy8gZ2l2ZW4gcHJvcGVydHkuIENh
bGxlZCBieSB0aGUgSlMgcnVudGltZS4KICAgICBzdGF0aWMgYm9vbCBoYXNQcm9wZXJ0eShOUE9i
amVjdCosIE5QSWRlbnRpZmllcik7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIEMrKyBj
bGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBOUE9iamVjdCBleHBvc2VzIHRoZQotICAgIC8vIGdp
dmVuIG1ldGhvZC4gIENhbGxlZCBieSB0aGUgSlMgcnVudGltZS4KKyAgICAvLyBnaXZlbiBtZXRo
b2QuIENhbGxlZCBieSB0aGUgSlMgcnVudGltZS4KICAgICBzdGF0aWMgYm9vbCBoYXNNZXRob2Qo
TlBPYmplY3QqLCBOUElkZW50aWZpZXIpOwogCiAgICAgLy8gSWYgdGhlIGdpdmVuIG1ldGhvZCBp
cyBleHBvc2VkIGJ5IHRoZSBDKysgY2xhc3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMKLSAgICAvLyBO
UE9iamVjdCwgaW52b2tlcyBpdCB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMgYW5kIHJldHVybnMg
YSByZXN1bHQuICBPdGhlcndpc2UsCi0gICAgLy8gcmV0dXJucyAidW5kZWZpbmVkIiAoaW4gdGhl
IEphdmFTY3JpcHQgc2Vuc2UpLiAgQ2FsbGVkIGJ5IHRoZSBKUyBydW50aW1lLgorICAgIC8vIE5Q
T2JqZWN0LCBpbnZva2VzIGl0IHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cyBhbmQgcmV0dXJucyBh
IHJlc3VsdC4gT3RoZXJ3aXNlLAorICAgIC8vIHJldHVybnMgInVuZGVmaW5lZCIgKGluIHRoZSBK
YXZhU2NyaXB0IHNlbnNlKS4gQ2FsbGVkIGJ5IHRoZSBKUyBydW50aW1lLgogICAgIHN0YXRpYyBi
b29sIGludm9rZShOUE9iamVjdCosIE5QSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgTlBWYXJpYW50KiBhcmd1bWVudHMsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgIE5QVmFyaWFudCogcmVzdWx0KTsKIAogICAgIC8vIElmIHRo
ZSBnaXZlbiBwcm9wZXJ0eSBpcyBleHBvc2VkIGJ5IHRoZSBDKysgY2xhc3MgYXNzb2NpYXRlZCB3
aXRoIHRoaXMKLSAgICAvLyBOUE9iamVjdCwgcmV0dXJucyBpdHMgdmFsdWUuICBPdGhlcndpc2Us
IHJldHVybnMgInVuZGVmaW5lZCIgKGluIHRoZQotICAgIC8vIEphdmFTY3JpcHQgc2Vuc2UpLiAg
Q2FsbGVkIGJ5IHRoZSBKUyBydW50aW1lLgorICAgIC8vIE5QT2JqZWN0LCByZXR1cm5zIGl0cyB2
YWx1ZS4gT3RoZXJ3aXNlLCByZXR1cm5zICJ1bmRlZmluZWQiIChpbiB0aGUKKyAgICAvLyBKYXZh
U2NyaXB0IHNlbnNlKS4gQ2FsbGVkIGJ5IHRoZSBKUyBydW50aW1lLgogICAgIHN0YXRpYyBib29s
IGdldFByb3BlcnR5KE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyLCBOUFZhcmlhbnQqIHJlc3VsdCk7
CiAKICAgICAvLyBJZiB0aGUgZ2l2ZW4gcHJvcGVydHkgaXMgZXhwb3NlZCBieSB0aGUgQysrIGNs
YXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzCi0gICAgLy8gTlBPYmplY3QsIHNldHMgaXRzIHZhbHVl
LiAgT3RoZXJ3aXNlLCBkb2VzIG5vdGhpbmcuIENhbGxlZCBieSB0aGUgSlMKKyAgICAvLyBOUE9i
amVjdCwgc2V0cyBpdHMgdmFsdWUuIE90aGVyd2lzZSwgZG9lcyBub3RoaW5nLiBDYWxsZWQgYnkg
dGhlIEpTCiAgICAgLy8gcnVudGltZS4KICAgICBzdGF0aWMgYm9vbCBzZXRQcm9wZXJ0eShOUE9i
amVjdCosIE5QSWRlbnRpZmllciwgY29uc3QgTlBWYXJpYW50KiB2YWx1ZSk7CiB9OwpAQCAtMzI5
LDcgKzMyOSw3IEBAIGJvb2wgQ3BwQm91bmRDbGFzczo6aXNNZXRob2RSZWdpc3RlcmVkKGNvbnN0
IHN0cmluZyYgbmFtZSkgY29uc3QKIENwcFZhcmlhbnQqIENwcEJvdW5kQ2xhc3M6OmdldEFzQ3Bw
VmFyaWFudCgpCiB7CiAgICAgaWYgKCFtX3NlbGZWYXJpYW50LmlzT2JqZWN0KCkpIHsKLSAgICAg
ICAgLy8gQ3JlYXRlIGFuIE5QT2JqZWN0IHVzaW5nIG91ciBzdGF0aWMgTlBDbGFzcy4gIFRoZSBm
aXJzdCBhcmd1bWVudCAoYQorICAgICAgICAvLyBDcmVhdGUgYW4gTlBPYmplY3QgdXNpbmcgb3Vy
IHN0YXRpYyBOUENsYXNzLiBUaGUgZmlyc3QgYXJndW1lbnQgKGEKICAgICAgICAgLy8gcGx1Z2lu
J3MgaW5zdGFuY2UgaGFuZGxlKSBpcyBwYXNzZWQgdGhyb3VnaCB0byB0aGUgYWxsb2NhdGUgZnVu
Y3Rpb24KICAgICAgICAgLy8gZGlyZWN0bHksIGFuZCB3ZSBkb24ndCB1c2UgaXQsIHNvIGl0J3Mg
b2sgdG8gYmUgMC4KICAgICAgICAgTlBPYmplY3QqIG5wT2JqID0gV2ViQmluZGluZ3M6OmNyZWF0
ZU9iamVjdCgwLCAmQ3BwTlBPYmplY3Q6Om5wQ2xhc3MpOwpAQCAtMzQ1LDcgKzM0NSw3IEBAIENw
cFZhcmlhbnQqIENwcEJvdW5kQ2xhc3M6OmdldEFzQ3BwVmFyaWFudCgpCiB2b2lkIENwcEJvdW5k
Q2xhc3M6OmJpbmRUb0phdmFzY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcm
IGNsYXNzbmFtZSkKIHsKICAgICAvLyBCaW5kVG9XaW5kb3dPYmplY3Qgd2lsbCB0YWtlIGl0cyBv
d24gcmVmZXJlbmNlIHRvIHRoZSBOUE9iamVjdCwgYW5kIGNsZWFuCi0gICAgLy8gdXAgYWZ0ZXIg
aXRzZWxmLiAgSXQgd2lsbCBhbHNvIChpbmRpcmVjdGx5KSByZWdpc3RlciB0aGUgb2JqZWN0IHdp
dGggVjgsCisgICAgLy8gdXAgYWZ0ZXIgaXRzZWxmLiBJdCB3aWxsIGFsc28gKGluZGlyZWN0bHkp
IHJlZ2lzdGVyIHRoZSBvYmplY3Qgd2l0aCBWOCwKICAgICAvLyBzbyB3ZSBtdXN0IHJlbWVtYmVy
IHRoaXMgc28gd2UgY2FuIHVucmVnaXN0ZXIgaXQgd2hlbiB3ZSdyZSBkZXN0cm95ZWQuCiAgICAg
ZnJhbWUtPmJpbmRUb1dpbmRvd09iamVjdChjbGFzc25hbWUsIE5QVkFSSUFOVF9UT19PQkpFQ1Qo
KmdldEFzQ3BwVmFyaWFudCgpKSk7CiAgICAgbV9ib3VuZFRvRnJhbWUgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwQm91bmRDbGFzcy5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwQm91bmRDbGFzcy5oCmluZGV4IGY3YjE5OGE0
YWE5NWE1ZjMwNjJmNzM0N2UyMjU3NzFlNTk3OWQxYzIuLjRmYjUzNjFlMWJjODNkYTBjNjM1ZDQ3
YTEzZjNhNGE0M2Y2Yjk0NWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0NwcEJvdW5kQ2xhc3MuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9D
cHBCb3VuZENsYXNzLmgKQEAgLTc3LDE0ICs3NywxNCBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGJh
Y2sgY2xhc3MgZm9yICJ2b2lkIGZ1bmN0aW9uKENwcFZhcmlhbnQqKSIKICAgICBjbGFzcyBHZXR0
ZXJDYWxsYmFjayB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5HZXR0ZXJDYWxsYmFj
aygpIHt9CisgICAgICAgIHZpcnR1YWwgfkdldHRlckNhbGxiYWNrKCkgeyB9CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBydW4oQ3BwVmFyaWFudCopID0gMDsKICAgICB9OwogCiAgICAgLy8gVGhlIGNv
bnN0cnVjdG9yIHNob3VsZCBjYWxsIEJpbmRNZXRob2QsIEJpbmRQcm9wZXJ0eSwgYW5kCiAgICAg
Ly8gU2V0RmFsbGJhY2tNZXRob2QgYXMgbmVlZGVkIHRvIHNldCB1cCB0aGUgbWV0aG9kcywgcHJv
cGVydGllcywgYW5kCiAgICAgLy8gZmFsbGJhY2sgbWV0aG9kLgotICAgIENwcEJvdW5kQ2xhc3Mo
KSA6IG1fYm91bmRUb0ZyYW1lKGZhbHNlKSB7fQorICAgIENwcEJvdW5kQ2xhc3MoKSA6IG1fYm91
bmRUb0ZyYW1lKGZhbHNlKSB7IH0KICAgICB2aXJ0dWFsIH5DcHBCb3VuZENsYXNzKCk7CiAKICAg
ICAvLyBSZXR1cm4gYSBDcHBWYXJpYW50IHJlcHJlc2VudGluZyB0aGlzIGNsYXNzLCBmb3IgdXNl
IHdpdGggQmluZFByb3BlcnR5KCkuCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICBDcHBW
YXJpYW50KiBnZXRBc0NwcFZhcmlhbnQoKTsKIAogICAgIC8vIEdpdmVuIGEgV2ViRnJhbWUsIEJp
bmRUb0phdmFzY3JpcHQgYnVpbGRzIHRoZSBOUE9iamVjdCB0aGF0IHdpbGwgcmVwcmVzZW50Ci0g
ICAgLy8gdGhlIGNsYXNzIGFuZCBiaW5kcyBpdCB0byB0aGUgZnJhbWUncyB3aW5kb3cgdW5kZXIg
dGhlIGdpdmVuIG5hbWUuICBUaGlzCisgICAgLy8gdGhlIGNsYXNzIGFuZCBiaW5kcyBpdCB0byB0
aGUgZnJhbWUncyB3aW5kb3cgdW5kZXIgdGhlIGdpdmVuIG5hbWUuIFRoaXMKICAgICAvLyBzaG91
bGQgZ2VuZXJhbGx5IGJlIGNhbGxlZCBmcm9tIHRoZSBXZWJWaWV3IGRlbGVnYXRlJ3MKICAgICAv
LyBXaW5kb3dPYmplY3RDbGVhcmVkKCkuIEEgY2xhc3Mgc28gYm91bmQgd2lsbCBiZSBhY2Nlc3Np
YmxlIHRvIEphdmFTY3JpcHQKICAgICAvLyBhcyB3aW5kb3cuPGNsYXNzbmFtZT4uIFRoZSBvd25l
ciBvZiB0aGUgQ3BwQm91bmRPYmplY3QgaXMgcmVzcG9uc2libGUgZm9yCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHVibGljOgogICAgIC8vIGFmdGVyd2FyZHMuCiAgICAgdm9pZCBiaW5kVG9KYXZhc2Ny
aXB0KFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgY2xhc3NuYW1l
KTsKIAotICAgIC8vIFVzZWQgYnkgYSB0ZXN0LiAgUmV0dXJucyB0cnVlIGlmIGEgbWV0aG9kIHdp
dGggbmFtZSB8bmFtZXwgZXhpc3RzLAorICAgIC8vIFVzZWQgYnkgYSB0ZXN0LiBSZXR1cm5zIHRy
dWUgaWYgYSBtZXRob2Qgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgZXhpc3RzLAogICAgIC8vIHJl
Z2FyZGxlc3Mgb2Ygd2hldGhlciBhIGZhbGxiYWNrIGlzIHJlZ2lzdGVyZWQuCiAgICAgYm9vbCBp
c01ldGhvZFJlZ2lzdGVyZWQoY29uc3Qgc3RkOjpzdHJpbmcmKSBjb25zdDsKIApAQCAtMTA4LDcg
KzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBDYWxsYmFjayBmb3IgInZvaWQgZnVuY3Rpb24o
Y29uc3QgQ3BwQXJndWVtbnRMaXN0JiwgQ3BwVmFyaWFudCopIgogICAgIGNsYXNzIENhbGxiYWNr
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfkNhbGxiYWNrKCkge30KKyAgICAgICAg
dmlydHVhbCB+Q2FsbGJhY2soKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bihjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KikgPSAwOwogICAgIH07CiAKQEAgLTExOCwxMyAr
MTE4LDE0IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZWRlZiB2b2lkIChUOjoqTWV0aG9kVHlw
ZSkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgICAgICBNZW1iZXJD
YWxsYmFjayhUKiBvYmplY3QsIE1ldGhvZFR5cGUgbWV0aG9kKQogICAgICAgICAgICAgOiBtX29i
amVjdChvYmplY3QpCi0gICAgICAgICAgICAsIG1fbWV0aG9kKG1ldGhvZCkge30KLSAgICAgICAg
dmlydHVhbCB+TWVtYmVyQ2FsbGJhY2soKSB7fQorICAgICAgICAgICAgLCBtX21ldGhvZChtZXRo
b2QpIHsgfQorICAgICAgICB2aXJ0dWFsIH5NZW1iZXJDYWxsYmFjaygpIHsgfQogCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBydW4oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKICAgICAgICAgewogICAgICAgICAgICAgKG1fb2JqZWN0LT4qbV9tZXRo
b2QpKGFyZ3VtZW50cywgcmVzdWx0KTsKICAgICAgICAgfQorCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgVCogbV9vYmplY3Q7CiAgICAgICAgIE1ldGhvZFR5cGUgbV9tZXRob2Q7CkBAIC0xMzYsMTAg
KzEzNywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVkZWYgdm9pZCAoVDo6Kk1ldGhvZFR5
cGUpKENwcFZhcmlhbnQqKTsKICAgICAgICAgTWVtYmVyR2V0dGVyQ2FsbGJhY2soVCogb2JqZWN0
LCBNZXRob2RUeXBlIG1ldGhvZCkKICAgICAgICAgICAgIDogbV9vYmplY3Qob2JqZWN0KQotICAg
ICAgICAgICAgLCBtX21ldGhvZChtZXRob2QpIHt9Ci0gICAgICAgIHZpcnR1YWwgfk1lbWJlckdl
dHRlckNhbGxiYWNrKCkge30KKyAgICAgICAgICAgICwgbV9tZXRob2QobWV0aG9kKSB7IH0KKyAg
ICAgICAgdmlydHVhbCB+TWVtYmVyR2V0dGVyQ2FsbGJhY2soKSB7IH0KIAogICAgICAgICB2aXJ0
dWFsIHZvaWQgcnVuKENwcFZhcmlhbnQqIHJlc3VsdCkgeyAobV9vYmplY3QtPiptX21ldGhvZCko
cmVzdWx0KTsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgVCogbV9vYmplY3Q7CiAgICAgICAg
IE1ldGhvZFR5cGUgbV9tZXRob2Q7CkBAIC0xNDksNyArMTUxLDcgQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgYmluZENhbGxiYWNrKGNvbnN0IHN0ZDo6c3RyaW5nJiwgQ2FsbGJhY2sqKTsKIAogICAg
IC8vIEEgd3JhcHBlciBmb3IgYmluZENhbGxiYWNrLCB0byBzaW1wbGlmeSB0aGUgY29tbW9uIGNh
c2Ugb2YgYmluZGluZyBhCi0gICAgLy8gbWV0aG9kIG9uIHRoZSBjdXJyZW50IG9iamVjdC4gIFRo
b3VnaCBub3QgdmVyaWZpZWQgaGVyZSwgfG1ldGhvZHwKKyAgICAvLyBtZXRob2Qgb24gdGhlIGN1
cnJlbnQgb2JqZWN0LiBUaG91Z2ggbm90IHZlcmlmaWVkIGhlcmUsIHRoZSBtZXRob2QgcGFyYW1l
dGVyCiAgICAgLy8gbXVzdCBiZSBhIG1ldGhvZCBvZiB0aGlzIENwcEJvdW5kQ2xhc3Mgc3ViY2xh
c3MuCiAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgICB2b2lkIGJpbmRNZXRob2QoY29uc3Qgc3Rk
OjpzdHJpbmcmIG5hbWUsIHZvaWQgKFQ6OiptZXRob2QpKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKSkKQEAgLTE2Myw3ICsxNjUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBi
aW5kR2V0dGVyQ2FsbGJhY2soY29uc3Qgc3RkOjpzdHJpbmcmLCBQYXNzT3duUHRyPEdldHRlckNh
bGxiYWNrPik7CiAKICAgICAvLyBBIHdyYXBwZXIgZm9yIEJpbmRHZXR0ZXJDYWxsYmFjaywgdG8g
c2ltcGxpZnkgdGhlIGNvbW1vbiBjYXNlIG9mIGJpbmRpbmcgYQotICAgIC8vIHByb3BlcnR5IG9u
IHRoZSBjdXJyZW50IG9iamVjdC4gIFRob3VnaCBub3QgdmVyaWZpZWQgaGVyZSwgfG1ldGhvZHwK
KyAgICAvLyBwcm9wZXJ0eSBvbiB0aGUgY3VycmVudCBvYmplY3QuIFRob3VnaCBub3QgdmVyaWZp
ZWQgaGVyZSwgdGhlIG1ldGhvZCBwYXJhbWV0ZXIKICAgICAvLyBtdXN0IGJlIGEgbWV0aG9kIG9m
IHRoaXMgQ3BwQm91bmRDbGFzcyBzdWJjbGFzcy4KICAgICB0ZW1wbGF0ZTxjbGFzcyBUPgogICAg
IHZvaWQgYmluZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCB2b2lkIChUOjoqbWV0
aG9kKShDcHBWYXJpYW50KikpCkBAIC0xOTUsNyArMTk3LDcgQEAgcHJvdGVjdGVkOgogICAgIH0K
IAogICAgIC8vIEEgd3JhcHBlciBmb3IgQmluZEZhbGxiYWNrQ2FsbGJhY2ssIHRvIHNpbXBsaWZ5
IHRoZSBjb21tb24gY2FzZSBvZgotICAgIC8vIGJpbmRpbmcgYSBtZXRob2Qgb24gdGhlIGN1cnJl
bnQgb2JqZWN0LiAgVGhvdWdoIG5vdCB2ZXJpZmllZCBoZXJlLAorICAgIC8vIGJpbmRpbmcgYSBt
ZXRob2Qgb24gdGhlIGN1cnJlbnQgb2JqZWN0LiBUaG91Z2ggbm90IHZlcmlmaWVkIGhlcmUsCiAg
ICAgLy8gfG1ldGhvZHwgbXVzdCBiZSBhIG1ldGhvZCBvZiB0aGlzIENwcEJvdW5kQ2xhc3Mgc3Vi
Y2xhc3MuCiAgICAgLy8gUGFzc2luZyAwIGZvciB8bWV0aG9kfCBjbGVhcnMgb3V0IGFueSBleGlz
dGluZyBiaW5kaW5nLgogICAgIHRlbXBsYXRlPGNsYXNzIFQ+CkBAIC0yMzEsNyArMjMzLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIGdldFByb3BlcnR5KE5QSWRlbnRpZmllciwgTlBWYXJpYW50KiBy
ZXN1bHQpIGNvbnN0OwogICAgIGJvb2wgc2V0UHJvcGVydHkoTlBJZGVudGlmaWVyLCBjb25zdCBO
UFZhcmlhbnQqKTsKIAotICAgIC8vIEEgbGF6aWx5LWluaXRpYWxpemVkIENwcFZhcmlhbnQgcmVw
cmVzZW50aW5nIHRoaXMgY2xhc3MuICBXZSByZXRhaW4gMQorICAgIC8vIEEgbGF6aWx5LWluaXRp
YWxpemVkIENwcFZhcmlhbnQgcmVwcmVzZW50aW5nIHRoaXMgY2xhc3MuIFdlIHJldGFpbiAxCiAg
ICAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0LCBhbmQgaXQgaXMgcmVsZWFzZWQgb24gZGVs
ZXRpb24uCiAgICAgQ3BwVmFyaWFudCBtX3NlbGZWYXJpYW50OwogCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBWYXJpYW50LmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9DcHBWYXJpYW50LmgKaW5kZXggMzAzMjMxMDVmYmExNmM0MTY1MTZkY2M3
ZjcwMTNjYTlhNDkzY2IyYy4uOWQ1ZWRjYWEzMTliNGU4MTI3ZTE3Mjc0ZDk0NDMxMWU5ZGMxMWNi
YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuaApAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOb3RlIHRoYXQgc2V0dGluZyBhIENwcFZhcmlh
bnQgdG8gYSBzdHJpbmcgdmFsdWUgaW52b2x2ZXMgY29weWluZyB0aGUKICAgICAvLyBzdHJpbmcg
ZGF0YSwgd2hpY2ggbXVzdCBiZSBmcmVlZCB3aXRoIGEgY2FsbCB0byBmcmVlRGF0YSgpIHdoZW4g
dGhlCi0gICAgLy8gQ3BwVmFyaWFudCBpcyBzZXQgdG8gYSBkaWZmZXJlbnQgdmFsdWUgb3IgaXMg
bm8gbG9uZ2VyIG5lZWRlZC4gIE5vcm1hbGx5CisgICAgLy8gQ3BwVmFyaWFudCBpcyBzZXQgdG8g
YSBkaWZmZXJlbnQgdmFsdWUgb3IgaXMgbm8gbG9uZ2VyIG5lZWRlZC4gTm9ybWFsbHkKICAgICAv
LyB0aGlzIGlzIGhhbmRsZWQgYnkgdGhlIG90aGVyIHNldCgpIG1ldGhvZHMgYW5kIGJ5IHRoZSBk
ZXN0cnVjdG9yLgogICAgIHZvaWQgc2V0KGNvbnN0IGNoYXIqKTsgLy8gTXVzdCBiZSBhIG51bGwt
dGVybWluYXRlZCBzdHJpbmcuCiAgICAgdm9pZCBzZXQoY29uc3Qgc3RkOjpzdHJpbmcmKTsKQEAg
LTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIC8vIHRoZSBOUCBydW50aW1lIG5vciBDcHBWYXJp
YW50IHdpbGwgZXZlciBmcmVlIGl0LgogICAgIHZvaWQgc2V0KE5QT2JqZWN0Kl92YWx1ZSk7CiAK
LSAgICAvLyBUaGVzZSB0aHJlZSBtZXRob2RzIGFsbCBwZXJmb3JtIGRlZXAgY29waWVzIG9mIGFu
eSBzdHJpbmcgZGF0YS4gIFRoaXMKKyAgICAvLyBUaGVzZSB0aHJlZSBtZXRob2RzIGFsbCBwZXJm
b3JtIGRlZXAgY29waWVzIG9mIGFueSBzdHJpbmcgZGF0YS4gVGhpcwogICAgIC8vIGFsbG93cyBs
b2NhbCBDcHBWYXJpYW50cyB0byBiZSByZWxlYXNlZCBieSB0aGUgZGVzdHJ1Y3RvciB3aXRob3V0
CiAgICAgLy8gY29ycnVwdGluZyB0aGVpciBzb3VyY2VzLiBJbiBwZXJmb3JtYW5jZS1jcml0aWNh
bCBjb2RlLCBvciB3aGVuIHN0cmluZ3MKICAgICAvLyBhcmUgdmVyeSBsb25nLCBhdm9pZCBjcmVh
dGluZyBuZXcgQ3BwVmFyaWFudHMuCkBAIC04OSw4ICs4OSw4IEBAIHB1YmxpYzoKICAgICAvLyB0
aGUgcmVmLWNvdW50IChyZWxlYXNlcyB3aGVuIHJlZi1jb3VudCBiZWNvbWVzIDApCiAgICAgdm9p
ZCBmcmVlRGF0YSgpOwogCi0gICAgLy8gQ29tcGFyZXMgdGhpcyBDcHBWYXJpYW50J3MgdHlwZSBh
bmQgdmFsdWUgdG8gYW5vdGhlcidzLiAgVGhleSBtdXN0IGJlCi0gICAgLy8gaWRlbnRpY2FsIGlu
IGJvdGggdHlwZSBhbmQgdmFsdWUgdG8gYmUgY29uc2lkZXJlZCBlcXVhbC4gIEZvciBzdHJpbmcg
YW5kCisgICAgLy8gQ29tcGFyZXMgdGhpcyBDcHBWYXJpYW50J3MgdHlwZSBhbmQgdmFsdWUgdG8g
YW5vdGhlcidzLiBUaGV5IG11c3QgYmUKKyAgICAvLyBpZGVudGljYWwgaW4gYm90aCB0eXBlIGFu
ZCB2YWx1ZSB0byBiZSBjb25zaWRlcmVkIGVxdWFsLiBGb3Igc3RyaW5nIGFuZAogICAgIC8vIG9i
amVjdCB0eXBlcywgYSBkZWVwIGNvbXBhcmlzb24gaXMgcGVyZm9ybWVkOyB0aGF0IGlzLCB0aGUg
Y29udGVudHMgb2YgdGhlCiAgICAgLy8gc3RyaW5ncywgb3IgdGhlIGNsYXNzZXMgYW5kIHJlZmNv
dW50cyBvZiB0aGUgb2JqZWN0cywgbXVzdCBiZSB0aGUgc2FtZSwKICAgICAvLyBidXQgdGhleSBu
ZWVkIG5vdCBiZSB0aGUgc2FtZSBwb2ludGVycy4KQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gKGlzVm9pZCgpIHx8IGlzTnVsbCgp
KTsgfQogICAgIGJvb2wgaXNPYmplY3QoKSBjb25zdCB7IHJldHVybiAodHlwZSA9PSBOUFZhcmlh
bnRUeXBlX09iamVjdCk7IH0KIAotICAgIC8vIENvbnZlcnRlcnMuICBUaGUgQ3BwVmFyaWFudCBt
dXN0IGJlIG9mIGEgdHlwZSBjb252ZXJ0aWJsZSB0byB0aGVzZSB2YWx1ZXMuCisgICAgLy8gQ29u
dmVydGVycy4gVGhlIENwcFZhcmlhbnQgbXVzdCBiZSBvZiBhIHR5cGUgY29udmVydGlibGUgdG8g
dGhlc2UgdmFsdWVzLgogICAgIC8vIEZvciBleGFtcGxlLCB0b0ludDMyKCkgd29ya3Mgb25seSBp
ZiBpc051bWJlcigpIGlzIHRydWUuCiAgICAgc3RkOjpzdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsK
ICAgICBpbnQzMl90IHRvSW50MzIoKSBjb25zdDsKQEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBJbnZva2UgbWV0aG9kIG9mIHRoZSBnaXZlbiBuYW1lIG9uIGFuIG9iamVjdCB3
aXRoIHRoZSBzdXBwbGllZCBhcmd1bWVudHMuCiAgICAgLy8gVGhlIGZpcnN0IGFyZ3VtZW50IHNo
b3VsZCBiZSB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRob2QgaXMgdG8gYmUKLSAgICAvLyBp
bnZva2VkLiAgUmV0dXJucyB3aGV0aGVyIHRoZSBtZXRob2Qgd2FzIHN1Y2Nlc3NmdWxseSBpbnZv
a2VkLiAgSWYgdGhlCisgICAgLy8gaW52b2tlZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBtZXRob2Qg
d2FzIHN1Y2Nlc3NmdWxseSBpbnZva2VkLiBJZiB0aGUKICAgICAvLyBtZXRob2Qgd2FzIGludm9r
ZWQgc3VjY2Vzc2Z1bGx5LCBhbnkgcmV0dXJuIHZhbHVlIGlzIHN0b3JlZCBpbiB0aGUKICAgICAv
LyBDcHBWYXJpYW50IHNwZWNpZmllZCBieSByZXN1bHQuCiAgICAgYm9vbCBpbnZva2UoY29uc3Qg
c3RkOjpzdHJpbmcmLCBjb25zdCBDcHBWYXJpYW50KiBhcmd1bWVudHMsCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmgKaW5kZXggMGVjZjYxYjEx
OTc3MjlkNTE2OTM4YTA3NjcxOWVlMTI2ZTYxYzAxZC4uYTk3M2Y4MWZhN2MzNjhmYjU0M2JhNTQy
ODkwMDExNmVjYmRmYjdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vRFJURGV2VG9vbHNBZ2VudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0RSVERldlRvb2xzQWdlbnQuaApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBEUlREZXZUb29sc0Fn
ZW50IDogcHVibGljIFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudENsaWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoRFJURGV2VG9vbHNBZ2VudCk7CiBwdWJsaWM6CiAgICAgRFJURGV2VG9v
bHNBZ2VudCgpOwotICAgIHZpcnR1YWwgfkRSVERldlRvb2xzQWdlbnQoKSB7fQorICAgIHZpcnR1
YWwgfkRSVERldlRvb2xzQWdlbnQoKSB7IH0KICAgICB2b2lkIHJlc2V0KCk7CiAKICAgICB2b2lk
IHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3Kik7CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGZyb250ZW5kTG9hZGVkKCk7CiAKICAgICBib29sIGV2YWx1YXRlSW5XZWJJbnNw
ZWN0b3IobG9uZyBjYWxsSUQsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzY3JpcHQpOwotICAgIGJvb2wg
c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlKTsKKyAgICBib29sIHNldFRp
bWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICBUYXNrTGlzdCogdGFza0xpc3QoKSB7
IHJldHVybiAmbV90YXNrTGlzdDsgfQogCiBwcml2YXRlOgpAQCAtODIsMTQgKzgyLDE1IEBAIHBy
aXZhdGU6CiAgICAgY2xhc3MgQXN5bmNDYWxsVGFzazogcHVibGljIE1ldGhvZFRhc2s8RFJURGV2
VG9vbHNBZ2VudD4gewogICAgIHB1YmxpYzoKICAgICAgICAgQXN5bmNDYWxsVGFzayhEUlREZXZU
b29sc0FnZW50KiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBhcmdzKQotICAgICAg
ICAgICAgOiBNZXRob2RUYXNrPERSVERldlRvb2xzQWdlbnQ+KG9iamVjdCksIG1fYXJncyhhcmdz
KSB7fQorICAgICAgICAgICAgOiBNZXRob2RUYXNrPERSVERldlRvb2xzQWdlbnQ+KG9iamVjdCks
IG1fYXJncyhhcmdzKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSB7IG1f
b2JqZWN0LT5jYWxsKG1fYXJncyk7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdDo6
V2ViU3RyaW5nIG1fYXJnczsKICAgICB9OwogCiAgICAgc3RydWN0IERlbGF5ZWRGcm9udGVuZExv
YWRlZFRhc2s6IHB1YmxpYyBNZXRob2RUYXNrPERSVERldlRvb2xzQWdlbnQ+IHsKLSAgICAgICAg
RGVsYXllZEZyb250ZW5kTG9hZGVkVGFzayhEUlREZXZUb29sc0FnZW50KiBvYmplY3QpIDogTWV0
aG9kVGFzazxEUlREZXZUb29sc0FnZW50PihvYmplY3QpIHt9CisgICAgICAgIERlbGF5ZWRGcm9u
dGVuZExvYWRlZFRhc2soRFJURGV2VG9vbHNBZ2VudCogb2JqZWN0KSA6IE1ldGhvZFRhc2s8RFJU
RGV2VG9vbHNBZ2VudD4ob2JqZWN0KSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFs
aWQoKSB7IG1fb2JqZWN0LT5kZWxheWVkRnJvbnRlbmRMb2FkZWQoKTsgfQogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQ2xpZW50
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQ2xpZW50LmNw
cAppbmRleCBiZjdhYTNlMmVkMDQzNDU0N2NjZmM1MWMwN2VhMWFmMWU3NThiYjA4Li5jZmNkMDAz
MmJjMzFjZTEwMWY1MGMxZTI1M2U0MzcyZTMyYWIzMTBhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0NsaWVudC5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNDbGllbnQuY3BwCkBAIC02NCw3ICs2NCw4
IEBAIHZvaWQgRFJURGV2VG9vbHNDbGllbnQ6OnJlc2V0KCkKICAgICBtX3Rhc2tMaXN0LnJldm9r
ZUFsbCgpOwogfQogCi12b2lkIERSVERldlRvb2xzQ2xpZW50OjpzZW5kRnJvbnRlbmRMb2FkZWQo
KSB7Cit2b2lkIERSVERldlRvb2xzQ2xpZW50OjpzZW5kRnJvbnRlbmRMb2FkZWQoKQorewogICAg
IGlmIChtX2RydERldlRvb2xzQWdlbnQpCiAgICAgICAgIG1fZHJ0RGV2VG9vbHNBZ2VudC0+ZnJv
bnRlbmRMb2FkZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0RSVERldlRvb2xzQ2xpZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
UlREZXZUb29sc0NsaWVudC5oCmluZGV4IDhhOTNlZTAzZmEyY2RjYjJiM2YyZTkwNWMzNzNkY2Nk
MTg3MzE4ZTUuLjc5ZjdkOTU5YzMwMzA5MzE5YTQ0MWE5MTkyZDQwZWU2YjRjMDIxMWQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQ2xpZW50LmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNDbGllbnQuaApA
QCAtNzMsOCArNzMsOSBAQCBwdWJsaWM6CiAgICAgY2xhc3MgQXN5bmNDYWxsVGFzazogcHVibGlj
IE1ldGhvZFRhc2s8RFJURGV2VG9vbHNDbGllbnQ+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFz
eW5jQ2FsbFRhc2soRFJURGV2VG9vbHNDbGllbnQqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJT
dHJpbmcmIGFyZ3MpCi0gICAgICAgICAgICA6IE1ldGhvZFRhc2s8RFJURGV2VG9vbHNDbGllbnQ+
KG9iamVjdCksIG1fYXJncyhhcmdzKSB7fQorICAgICAgICAgICAgOiBNZXRob2RUYXNrPERSVERl
dlRvb2xzQ2xpZW50PihvYmplY3QpLCBtX2FyZ3MoYXJncykgeyB9CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBydW5JZlZhbGlkKCkgeyBtX29iamVjdC0+Y2FsbChtX2FyZ3MpOyB9CisKICAgICBwcml2
YXRlOgogICAgICAgICBXZWJLaXQ6OldlYlN0cmluZyBtX2FyZ3M7CiAgICAgfTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA0YzJl
MTMxN2QyZTAxYjMxNWEwYmFkNDIyNmQ0MGM2YTIwMzg3N2JhLi5kMzQ4NTQ3MmM3OTZiNWMxMDRj
NWQwMDEwZTYzNzFjYWMzNjc4NTkzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0yNTksOCArMjU5LDggQEAgaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgc2hlbGwuY2FsbEpTR0MoKTsKIAogICAgICAg
ICAvLyBXaGVuIHdlIGZpbmlzaCB0aGUgbGFzdCB0ZXN0LCBjbGVhbnVwIHRoZSBMYXlvdXRUZXN0
Q29udHJvbGxlci4KLSAgICAgICAgLy8gSXQgbWF5IGhhdmUgcmVmZXJlbmNlcyB0byBub3QteWV0
LWNsZWFuZWQgdXAgd2luZG93cy4gIEJ5Ci0gICAgICAgIC8vIGNsZWFuaW5nIHVwIGhlcmUgd2Ug
aGVscCBwdXJpZnkgcmVwb3J0cy4KKyAgICAgICAgLy8gSXQgbWF5IGhhdmUgcmVmZXJlbmNlcyB0
byBub3QteWV0LWNsZWFuZWQgdXAgd2luZG93cy4gQnkgY2xlYW5pbmcgdXAKKyAgICAgICAgLy8g
aGVyZSB3ZSBoZWxwIHB1cmlmeSByZXBvcnRzLgogICAgICAgICBzaGVsbC5yZXNldFRlc3RDb250
cm9sbGVyKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVu
dFNlbmRlci5jcHAKaW5kZXggYzgwMGM0MzVjNjVmMWM5MGI4ZmJiMjA4OTI4OWQyNDVhMDlhNTk0
OC4uOWU1NTU4OTNlOThhN2EwNGRkNDVjNTVjYjAyOWRjMTc1YmY4Y2MwNSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcApAQCAtMzEsMTAgKzMxLDEw
IEBACiAvLyBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmluaXRpb24gZm9yIEV2ZW50U2VuZGVy
LgogLy8KIC8vIFNvbWUgbm90ZXMgYWJvdXQgZHJhZyBhbmQgZHJvcCBoYW5kbGluZzoKLS8vIFdp
bmRvd3MgZHJhZyBhbmQgZHJvcCBnb2VzIHRocm91Z2ggYSBzeXN0ZW0gY2FsbCB0byBkb0RyYWdE
cm9wLiAgQXQgdGhhdAorLy8gV2luZG93cyBkcmFnIGFuZCBkcm9wIGdvZXMgdGhyb3VnaCBhIHN5
c3RlbSBjYWxsIHRvIGRvRHJhZ0Ryb3AuIEF0IHRoYXQKIC8vIHBvaW50LCBwcm9ncmFtIGNvbnRy
b2wgaXMgZ2l2ZW4gdG8gV2luZG93cyB3aGljaCB0aGVuIHBlcmlvZGljYWxseSBtYWtlcwotLy8g
Y2FsbGJhY2tzIGludG8gdGhlIHdlYnZpZXcuICBUaGlzIHdvbid0IHdvcmsgZm9yIGxheW91dCB0
ZXN0cywgc28gaW5zdGVhZCwKLS8vIHdlIHF1ZXVlIHVwIGFsbCB0aGUgbW91c2UgbW92ZSBhbmQg
bW91c2UgdXAgZXZlbnRzLiAgV2hlbiB0aGUgdGVzdCB0cmllcyB0bworLy8gY2FsbGJhY2tzIGlu
dG8gdGhlIHdlYnZpZXcuIFRoaXMgd29uJ3Qgd29yayBmb3IgbGF5b3V0IHRlc3RzLCBzbyBpbnN0
ZWFkLAorLy8gd2UgcXVldWUgdXAgYWxsIHRoZSBtb3VzZSBtb3ZlIGFuZCBtb3VzZSB1cCBldmVu
dHMuIFdoZW4gdGhlIHRlc3QgdHJpZXMgdG8KIC8vIHN0YXJ0IGEgZHJhZyAoYnkgY2FsbGluZyBF
dmVuU2VuZGluZ0NvbnRyb2xsZXI6OmRvRHJhZ0Ryb3ApLCB3ZSB0YWtlIHRoZQogLy8gZXZlbnRz
IGluIHRoZSBxdWV1ZSBhbmQgcmVwbGF5IHRoZW0uCiAvLyBUaGUgYmVoYXZpb3Igb2YgcXVldWlu
ZyBldmVudHMgYW5kIHJlcGxheWluZyB0aGVtIGNhbiBiZSBkaXNhYmxlZCBieSBhCkBAIC04NCw3
ICs4NCw3IEBAIHN0cnVjdCBTYXZlZEV2ZW50IHsKICAgICBTYXZlZEV2ZW50KCkKICAgICAgICAg
OiB0eXBlKFVuc3BlY2lmaWVkKQogICAgICAgICAsIGJ1dHRvblR5cGUoV2ViTW91c2VFdmVudDo6
QnV0dG9uTm9uZSkKLSAgICAgICAgLCBtaWxsaXNlY29uZHMoMCkge30KKyAgICAgICAgLCBtaWxs
aXNlY29uZHMoMCkgeyB9CiB9OwogCiBzdGF0aWMgV2ViRHJhZ0RhdGEgY3VycmVudERyYWdEYXRh
OwpAQCAtMTE1LDcgKzExNSw3IEBAIGlubGluZSBib29sIG91dHNpZGVNdWx0aUNsaWNrUmFkaXVz
KGNvbnN0IFdlYlBvaW50JiBhLCBjb25zdCBXZWJQb2ludCYgYikKICAgICAgICAgbXVsdGlwbGVD
bGlja1JhZGl1c1BpeGVscyAqIG11bHRpcGxlQ2xpY2tSYWRpdXNQaXhlbHM7CiB9CiAKLS8vIFVz
ZWQgdG8gb2Zmc2V0IHRoZSB0aW1lIHRoZSBldmVudCBoYW5kZXIgdGhpbmdzIGFuIGV2ZW50IGhh
cHBlbmVkLiAgVGhpcyBpcworLy8gVXNlZCB0byBvZmZzZXQgdGhlIHRpbWUgdGhlIGV2ZW50IGhh
bmRlciB0aGluZ3MgYW4gZXZlbnQgaGFwcGVuZWQuIFRoaXMgaXMKIC8vIGRvbmUgc28gdGVzdHMg
Y2FuIHJ1biB3aXRob3V0IGEgZGVsYXksIGJ1dCBieXBhc3MgY2hlY2tzIHRoYXQgYXJlIHRpbWUK
IC8vIGRlcGVuZGVudCAoZS5nLiwgZHJhZ2dpbmcgaGFzIGEgdGltZW91dCB2cyBzZWxlY3Rpb24p
Lgogc3RhdGljIHVpbnQzMiB0aW1lT2Zmc2V0TXMgPSAwOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIEV2
ZW50U2VuZGVyOjpFdmVudFNlbmRlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIDogbV9zaGVsbChz
aGVsbCkKIHsKICAgICAvLyBJbml0aWFsaXplIHRoZSBtYXAgdGhhdCBhc3NvY2lhdGVzIG1ldGhv
ZHMgb2YgdGhpcyBjbGFzcyB3aXRoIHRoZSBuYW1lcwotICAgIC8vIHRoZXkgd2lsbCB1c2Ugd2hl
biBjYWxsZWQgYnkgSmF2YVNjcmlwdC4gIFRoZSBhY3R1YWwgYmluZGluZyBvZiB0aG9zZQorICAg
IC8vIHRoZXkgd2lsbCB1c2Ugd2hlbiBjYWxsZWQgYnkgSmF2YVNjcmlwdC4gVGhlIGFjdHVhbCBi
aW5kaW5nIG9mIHRob3NlCiAgICAgLy8gbmFtZXMgdG8gdGhlaXIgbWV0aG9kcyB3aWxsIGJlIGRv
bmUgYnkgY2FsbGluZyBiaW5kVG9KYXZhU2NyaXB0KCkgKGRlZmluZWQKICAgICAvLyBieSBDcHBC
b3VuZENsYXNzLCB0aGUgcGFyZW50IHRvIEV2ZW50U2VuZGVyKS4KICAgICBiaW5kTWV0aG9kKCJh
ZGRUb3VjaFBvaW50IiwgJkV2ZW50U2VuZGVyOjphZGRUb3VjaFBvaW50KTsKQEAgLTQ5OCw3ICs0
OTgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBh
bHNvIGdlbmVyYXRlIGEgS0VZX1VQPwogICAgIHN0cmluZyBjb2RlU3RyID0gYXJndW1lbnRzWzBd
LnRvU3RyaW5nKCk7CiAKLSAgICAvLyBDb252ZXJ0IFxuIC0+IFZLX1JFVFVSTi4gIFNvbWUgbGF5
b3V0IHRlc3RzIHVzZSBcbiB0byBtZWFuICJFbnRlciIsIHdoZW4KKyAgICAvLyBDb252ZXJ0IFxu
IC0+IFZLX1JFVFVSTi4gU29tZSBsYXlvdXQgdGVzdHMgdXNlIFxuIHRvIG1lYW4gIkVudGVyIiwg
d2hlbgogICAgIC8vIFdpbmRvd3MgdXNlcyBcciBmb3IgIkVudGVyIi4KICAgICBpbnQgY29kZSA9
IDA7CiAgICAgaW50IHRleHQgPSAwOwpAQCAtNzk1LDggKzc5NSw5IEBAIHZvaWQgRXZlbnRTZW5k
ZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFy
aWFudCogcmVzCiBjbGFzcyBNb3VzZURvd25UYXNrOiBwdWJsaWMgTWV0aG9kVGFzazxFdmVudFNl
bmRlcj4gewogcHVibGljOgogICAgIE1vdXNlRG93blRhc2soRXZlbnRTZW5kZXIqIG9iaiwgY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmcpCi0gICAgICAgIDogTWV0aG9kVGFzazxFdmVudFNlbmRl
cj4ob2JqKSwgbV9hcmd1bWVudHMoYXJnKSB7fQorICAgICAgICA6IE1ldGhvZFRhc2s8RXZlbnRT
ZW5kZXI+KG9iaiksIG1fYXJndW1lbnRzKGFyZykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJ1bklm
VmFsaWQoKSB7IG1fb2JqZWN0LT5tb3VzZURvd24obV9hcmd1bWVudHMsIDApOyB9CisKIHByaXZh
dGU6CiAgICAgQ3BwQXJndW1lbnRMaXN0IG1fYXJndW1lbnRzOwogfTsKQEAgLTgwNCw4ICs4MDUs
OSBAQCBwcml2YXRlOgogY2xhc3MgTW91c2VVcFRhc2s6IHB1YmxpYyBNZXRob2RUYXNrPEV2ZW50
U2VuZGVyPiB7CiBwdWJsaWM6CiAgICAgTW91c2VVcFRhc2soRXZlbnRTZW5kZXIqIG9iaiwgY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmcpCi0gICAgICAgIDogTWV0aG9kVGFzazxFdmVudFNlbmRl
cj4ob2JqKSwgbV9hcmd1bWVudHMoYXJnKSB7fQorICAgICAgICA6IE1ldGhvZFRhc2s8RXZlbnRT
ZW5kZXI+KG9iaiksIG1fYXJndW1lbnRzKGFyZykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJ1bklm
VmFsaWQoKSB7IG1fb2JqZWN0LT5tb3VzZVVwKG1fYXJndW1lbnRzLCAwKTsgfQorCiBwcml2YXRl
OgogICAgIENwcEFyZ3VtZW50TGlzdCBtX2FyZ3VtZW50czsKIH07CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuaAppbmRleCAxMTg1MDliNmQ5OWQ4YmZlMzkwZTRh
OWNlMThhYTY3ZDE0MjkxMzg4Li5kZTFjYTA1NDAzOTEyMjU3N2M5ZDZkYmUzYzlmNmE4NTRhNGM4
YTg2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRl
ci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmgKQEAg
LTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNEcmFnTW9kZSgpIHsgcmV0dXJu
IGRyYWdNb2RlLmlzQm9vbCgpICYmIGRyYWdNb2RlLnRvQm9vbGVhbigpOyB9CiAKICAgICAvLyBT
b21ldGltZXMgd2UgcXVldWUgdXAgbW91c2UgbW92ZSBhbmQgbW91c2UgdXAgZXZlbnRzIGZvciBk
cmFnIGRyb3AKLSAgICAvLyBoYW5kbGluZyBwdXJwb3Nlcy4gIFRoZXNlIG1ldGhvZHMgZGlzcGF0
Y2ggdGhlIGV2ZW50LgorICAgIC8vIGhhbmRsaW5nIHB1cnBvc2VzLiBUaGVzZSBtZXRob2RzIGRp
c3BhdGNoIHRoZSBldmVudC4KICAgICB2b2lkIGRvTW91c2VNb3ZlKGNvbnN0IFdlYktpdDo6V2Vi
TW91c2VFdmVudCYpOwogICAgIHZvaWQgZG9Nb3VzZVVwKGNvbnN0IFdlYktpdDo6V2ViTW91c2VF
dmVudCYpOwogICAgIHN0YXRpYyB2b2lkIGRvTGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7
CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIFRhc2tMaXN0IG1fdGFza0xpc3Q7
CiAKLSAgICAvLyBOb24tb3duaW5nIHBvaW50ZXIuICBUaGUgRXZlbnRTZW5kZXIgaXMgb3duZWQg
YnkgdGhlIFRlc3RTaGVsbC4KKyAgICAvLyBOb24tb3duaW5nIHBvaW50ZXIuIFRoZSBFdmVudFNl
bmRlciBpcyBvd25lZCBieSB0aGUgVGVzdFNoZWxsLgogICAgIFRlc3RTaGVsbCogbV9zaGVsbDsK
IAogICAgIC8vIExvY2F0aW9uIG9mIGxhc3QgbW91c2VNb3ZlVG8gZXZlbnQuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9JbWFnZURpZmYuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vSW1hZ2VEaWZmLmNwcAppbmRleCBkNjc2NDMwMDVlZjUwMjk5
M2YzZDVhNzI1YWFkZDAzMzBjNmQ1NGVjLi4yMGY5ZTkzOTE2MTdlYmJmMmY3ZmUyOTVjNDg3Mzgw
OGUxY2E5Zjk1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9JbWFn
ZURpZmYuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0ltYWdlRGlmZi5j
cHAKQEAgLTY5LDEyICs2OSwxMiBAQCBjbGFzcyBJbWFnZSB7CiBwdWJsaWM6CiAgICAgSW1hZ2Uo
KQogICAgICAgICA6IG1fd2lkdGgoMCkKLSAgICAgICAgLCBtX2hlaWdodCgwKSB7fQorICAgICAg
ICAsIG1faGVpZ2h0KDApIHsgfQogCiAgICAgSW1hZ2UoY29uc3QgSW1hZ2UmIGltYWdlKQogICAg
ICAgICA6IG1fd2lkdGgoaW1hZ2UubV93aWR0aCkKICAgICAgICAgLCBtX2hlaWdodChpbWFnZS5t
X2hlaWdodCkKLSAgICAgICAgLCBtX2RhdGEoaW1hZ2UubV9kYXRhKSB7fQorICAgICAgICAsIG1f
ZGF0YShpbWFnZS5tX2RhdGEpIHsgfQogCiAgICAgYm9vbCBoYXNJbWFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1fd2lkdGggPiAwICYmIG1faGVpZ2h0ID4gMDsgfQogICAgIGludCB3aWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2lkdGg7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA5ZjdlOTQ5ZWQ1MzJlM2NhY2Uw
MzQwYzk0MWNkNmJkOTU1ZjRjOWM3Li4zM2E1NTgwYmM3YTE4MzdhNWNmMjM5ZmQ0ZWM4NzIxMGJj
M2U5NWE0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC03OCw3ICs3OCw3IEBAIExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogewogCiAgICAgLy8g
SW5pdGlhbGl6ZSB0aGUgbWFwIHRoYXQgYXNzb2NpYXRlcyBtZXRob2RzIG9mIHRoaXMgY2xhc3Mg
d2l0aCB0aGUgbmFtZXMKLSAgICAvLyB0aGV5IHdpbGwgdXNlIHdoZW4gY2FsbGVkIGJ5IEphdmFT
Y3JpcHQuICBUaGUgYWN0dWFsIGJpbmRpbmcgb2YgdGhvc2UKKyAgICAvLyB0aGV5IHdpbGwgdXNl
IHdoZW4gY2FsbGVkIGJ5IEphdmFTY3JpcHQuIFRoZSBhY3R1YWwgYmluZGluZyBvZiB0aG9zZQog
ICAgIC8vIG5hbWVzIHRvIHRoZWlyIG1ldGhvZHMgd2lsbCBiZSBkb25lIGJ5IGNhbGxpbmcgYmlu
ZFRvSmF2YVNjcmlwdCgpIChkZWZpbmVkCiAgICAgLy8gYnkgQ3BwQm91bmRDbGFzcywgdGhlIHBh
cmVudCB0byBMYXlvdXRUZXN0Q29udHJvbGxlcikuCiAgICAgYmluZE1ldGhvZCgiYWRkRmlsZVRv
UGFzdGVib2FyZE9uRHJhZyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkRmlsZVRvUGFzdGVi
b2FyZE9uRHJhZyk7CkBAIC0yNjUsOSArMjY1LDggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6V29ya1F1ZXVlOjpwcm9jZXNzV29yaygpCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpX
b3JrUXVldWU6OnJlc2V0KCkKIHsKICAgICBtX2Zyb3plbiA9IGZhbHNlOwotICAgIHdoaWxlICgh
bV9xdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICB3aGlsZSAoIW1fcXVldWUuaXNFbXB0eSgpKQogICAg
ICAgICBkZWxldGUgbV9xdWV1ZS50YWtlRmlyc3QoKTsKLSAgICB9CiB9CiAKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OldvcmtRdWV1ZTo6YWRkV29yayhXb3JrSXRlbSogd29yaykKQEAgLTM5
NCwxMiArMzkzLDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvbXBsZXRlTm90aWZ5
RG9uZShib29sIGlzVGltZW91dCkKIAogY2xhc3MgV29ya0l0ZW1CYWNrRm9yd2FyZCA6IHB1Ymxp
YyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6V29ya0l0ZW0gewogcHVibGljOgotICAgIFdvcmtJdGVt
QmFja0ZvcndhcmQoaW50IGRpc3RhbmNlKSA6IG1fZGlzdGFuY2UoZGlzdGFuY2UpIHt9CisgICAg
V29ya0l0ZW1CYWNrRm9yd2FyZChpbnQgZGlzdGFuY2UpIDogbV9kaXN0YW5jZShkaXN0YW5jZSkg
eyB9CiAgICAgYm9vbCBydW4oVGVzdFNoZWxsKiBzaGVsbCkKICAgICB7CiAgICAgICAgIHNoZWxs
LT5nb1RvT2Zmc2V0KG1fZGlzdGFuY2UpOwogICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gRklYTUU6
IERpZCBpdCByZWFsbHkgc3RhcnQgYSBuYXZpZ2F0aW9uPwogICAgIH0KKwogcHJpdmF0ZToKICAg
ICBpbnQgbV9kaXN0YW5jZTsKIH07CkBAIC00MzUsMjQgKzQzNSwyNiBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpxdWV1ZVJlbG9hZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50KiByZXN1bAogCiBjbGFzcyBXb3JrSXRlbUxvYWRpbmdTY3JpcHQgOiBwdWJsaWMgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OldvcmtJdGVtIHsKIHB1YmxpYzoKLSAgICBXb3JrSXRlbUxvYWRpbmdT
Y3JpcHQoY29uc3Qgc3RyaW5nJiBzY3JpcHQpIDogbV9zY3JpcHQoc2NyaXB0KSB7fQorICAgIFdv
cmtJdGVtTG9hZGluZ1NjcmlwdChjb25zdCBzdHJpbmcmIHNjcmlwdCkgOiBtX3NjcmlwdChzY3Jp
cHQpIHsgfQogICAgIGJvb2wgcnVuKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgewogICAgICAgICBz
aGVsbC0+d2ViVmlldygpLT5tYWluRnJhbWUoKS0+ZXhlY3V0ZVNjcmlwdChXZWJTY3JpcHRTb3Vy
Y2UoV2ViU3RyaW5nOjpmcm9tVVRGOChtX3NjcmlwdCkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7
IC8vIEZJWE1FOiBEaWQgaXQgcmVhbGx5IHN0YXJ0IGEgbmF2aWdhdGlvbj8KICAgICB9CisKIHBy
aXZhdGU6CiAgICAgc3RyaW5nIG1fc2NyaXB0OwogfTsKIAogY2xhc3MgV29ya0l0ZW1Ob25Mb2Fk
aW5nU2NyaXB0IDogcHVibGljIExheW91dFRlc3RDb250cm9sbGVyOjpXb3JrSXRlbSB7CiBwdWJs
aWM6Ci0gICAgV29ya0l0ZW1Ob25Mb2FkaW5nU2NyaXB0KGNvbnN0IHN0cmluZyYgc2NyaXB0KSA6
IG1fc2NyaXB0KHNjcmlwdCkge30KKyAgICBXb3JrSXRlbU5vbkxvYWRpbmdTY3JpcHQoY29uc3Qg
c3RyaW5nJiBzY3JpcHQpIDogbV9zY3JpcHQoc2NyaXB0KSB7IH0KICAgICBib29sIHJ1bihUZXN0
U2hlbGwqIHNoZWxsKQogICAgIHsKICAgICAgICAgc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1l
KCktPmV4ZWN1dGVTY3JpcHQoV2ViU2NyaXB0U291cmNlKFdlYlN0cmluZzo6ZnJvbVVURjgobV9z
Y3JpcHQpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisKIHByaXZhdGU6CiAgICAg
c3RyaW5nIG1fc2NyaXB0OwogfTsKQEAgLTQ3NSwxMiArNDc3LDEzIEBAIGNsYXNzIFdvcmtJdGVt
TG9hZCA6IHB1YmxpYyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6V29ya0l0ZW0gewogcHVibGljOgog
ICAgIFdvcmtJdGVtTG9hZChjb25zdCBXZWJVUkwmIHVybCwgY29uc3QgV2ViU3RyaW5nJiB0YXJn
ZXQpCiAgICAgICAgIDogbV91cmwodXJsKQotICAgICAgICAsIG1fdGFyZ2V0KHRhcmdldCkge30K
KyAgICAgICAgLCBtX3RhcmdldCh0YXJnZXQpIHsgfQogICAgIGJvb2wgcnVuKFRlc3RTaGVsbCog
c2hlbGwpCiAgICAgewogICAgICAgICBzaGVsbC0+d2ViVmlld0hvc3QoKS0+bG9hZFVSTEZvckZy
YW1lKG1fdXJsLCBtX3RhcmdldCk7CiAgICAgICAgIHJldHVybiB0cnVlOyAvLyBGSVhNRTogRGlk
IGl0IHJlYWxseSBzdGFydCBhIG5hdmlnYXRpb24/CiAgICAgfQorCiBwcml2YXRlOgogICAgIFdl
YlVSTCBtX3VybDsKICAgICBXZWJTdHJpbmcgbV90YXJnZXQ7CkBAIC01MDYsMTcgKzUwOSwxOCBA
QCBjbGFzcyBXb3JrSXRlbUxvYWRIVE1MU3RyaW5nIDogcHVibGljIExheW91dFRlc3RDb250cm9s
bGVyOjpXb3JrSXRlbSAgewogcHVibGljOgogICAgIFdvcmtJdGVtTG9hZEhUTUxTdHJpbmcoY29u
c3Qgc3RkOjpzdHJpbmcmIGh0bWwsIGNvbnN0IFdlYlVSTCYgYmFzZVVSTCkKICAgICAgICAgOiBt
X2h0bWwoaHRtbCkKLSAgICAgICAgLCBtX2Jhc2VVUkwoYmFzZVVSTCkge30KKyAgICAgICAgLCBt
X2Jhc2VVUkwoYmFzZVVSTCkgeyB9CiAgICAgV29ya0l0ZW1Mb2FkSFRNTFN0cmluZyhjb25zdCBz
dGQ6OnN0cmluZyYgaHRtbCwgY29uc3QgV2ViVVJMJiBiYXNlVVJMLCBjb25zdCBXZWJVUkwmIHVu
cmVhY2hhYmxlVVJMKQogICAgICAgICA6IG1faHRtbChodG1sKQogICAgICAgICAsIG1fYmFzZVVS
TChiYXNlVVJMKQotICAgICAgICAsIG1fdW5yZWFjaGFibGVVUkwodW5yZWFjaGFibGVVUkwpIHt9
CisgICAgICAgICwgbV91bnJlYWNoYWJsZVVSTCh1bnJlYWNoYWJsZVVSTCkgeyB9CiAgICAgYm9v
bCBydW4oVGVzdFNoZWxsKiBzaGVsbCkKICAgICB7CiAgICAgICAgIHNoZWxsLT53ZWJWaWV3KCkt
Pm1haW5GcmFtZSgpLT5sb2FkSFRNTFN0cmluZygKICAgICAgICAgICAgIFdlYktpdDo6V2ViRGF0
YShtX2h0bWwuZGF0YSgpLCBtX2h0bWwubGVuZ3RoKCkpLCBtX2Jhc2VVUkwsIG1fdW5yZWFjaGFi
bGVVUkwpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisKIHByaXZhdGU6CiAgICAgc3Rk
OjpzdHJpbmcgbV9odG1sOwogICAgIFdlYlVSTCBtX2Jhc2VVUkw7CkBAIC05MjYsNyArOTMwLDcg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywKICAgICB9CiAjZW5kaWYKIAotICAgIC8vIFNvbWUg
bGF5b3V0IHRlc3RzIHVzZSBmaWxlOi8vLy8gd2hpY2ggd2UgcmVzb2x2ZSBhcyBhIFVOQyBwYXRo
LiAgTm9ybWFsaXplCisgICAgLy8gU29tZSBsYXlvdXQgdGVzdHMgdXNlIGZpbGU6Ly8vLyB3aGlj
aCB3ZSByZXNvbHZlIGFzIGEgVU5DIHBhdGguIE5vcm1hbGl6ZQogICAgIC8vIHRoZW0gdG8ganVz
dCBmaWxlOi8vLy4KICAgICBzdHJpbmcgbG93ZXJVcmwgPSB1cmw7CiAgICAgdHJhbnNmb3JtKGxv
d2VyVXJsLmJlZ2luKCksIGxvd2VyVXJsLmVuZCgpLCBsb3dlclVybC5iZWdpbigpLCA6OnRvbG93
ZXIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmgKaW5kZXggM2M3NDU0OWNkNTM4N2QzM2M1ZGI4MjdmZmZlMGIwZjY1YWNkNjFi
MS4uYzRlOTVhNzA2MWI0OGJlY2UxZjNmOTdjOWQ1NWZkODM2Njg2ZGFmNiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBA
IC03MiwzMyArNzIsMzMgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcEFzVGV4dChjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3Vs
ZCBzZXQgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lCi0g
ICAgLy8gb2YgZGVzY3JpcHRpdmUgdGV4dCBmb3IgZWFjaCBkYXRhYmFzZSBjb21tYW5kLiAgSXQg
c2hvdWxkIHRha2Ugbm8KKyAgICAvLyBvZiBkZXNjcmlwdGl2ZSB0ZXh0IGZvciBlYWNoIGRhdGFi
YXNlIGNvbW1hbmQuIEl0IHNob3VsZCB0YWtlIG5vCiAgICAgLy8gYXJndW1lbnRzLCBhbmQgaWdu
b3JlIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LiBIb3dldmVyLCBhdCB0aGUgbW9tZW50LCB3ZQog
ICAgIC8vIGRvbid0IGhhdmUgYW55IERCIGZ1bmN0aW9uIHRoYXQgcHJpbnRzIG1lc3NhZ2VzLCBz
byBmb3Igbm93IHRoaXMgZnVuY3Rpb24KICAgICAvLyBkb2Vzbid0IGRvIGFueXRoaW5nLgogICAg
IHZvaWQgZHVtcERhdGFiYXNlQ2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0
aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YKLSAgICAvLyBkZXNjcmlwdGl2ZSB0ZXh0
IGZvciBlYWNoIGVkaXRpbmcgY29tbWFuZC4gIEl0IHRha2VzIG5vIGFyZ3VtZW50cywgYW5kCisg
ICAgLy8gZGVzY3JpcHRpdmUgdGV4dCBmb3IgZWFjaCBlZGl0aW5nIGNvbW1hbmQuIEl0IHRha2Vz
IG5vIGFyZ3VtZW50cywgYW5kCiAgICAgLy8gaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJlc2Vu
dC4KICAgICB2b2lkIGR1bXBFZGl0aW5nQ2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0
ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YKLSAgICAvLyBkZXNjcmlwdGl2
ZSB0ZXh0IGZvciBlYWNoIGZyYW1lIGxvYWQgY2FsbGJhY2suICBJdCB0YWtlcyBubyBhcmd1bWVu
dHMsIGFuZAorICAgIC8vIGRlc2NyaXB0aXZlIHRleHQgZm9yIGVhY2ggZnJhbWUgbG9hZCBjYWxs
YmFjay4gSXQgdGFrZXMgbm8gYXJndW1lbnRzLCBhbmQKICAgICAvLyBpZ25vcmVzIGFueSB0aGF0
IG1heSBiZSBwcmVzZW50LgogICAgIHZvaWQgZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNl
dHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lIG9mCi0g
ICAgLy8gdXNlciBnZXN0dXJlIHN0YXR1cyB0ZXh0IGZvciBzb21lIGZyYW1lIGxvYWQgY2FsbGJh
Y2tzLiAgSXQgdGFrZXMgbm8KKyAgICAvLyB1c2VyIGdlc3R1cmUgc3RhdHVzIHRleHQgZm9yIHNv
bWUgZnJhbWUgbG9hZCBjYWxsYmFja3MuIEl0IHRha2VzIG5vCiAgICAgLy8gYXJndW1lbnRzLCBh
bmQgaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJlc2VudC4KICAgICB2b2lkIGR1bXBVc2VyR2Vz
dHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUg
dGVzdF9zaGVsbCB0byBwcmludCBvdXQgYSB0ZXh0Ci0gICAgLy8gcmVwcmVzZW50YXRpb24gb2Yg
dGhlIGJhY2svZm9yd2FyZCBsaXN0LiAgSXQgaWdub3JlcyBhbGwgYXJndW1lbnRzLgorICAgIC8v
IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBiYWNrL2ZvcndhcmQgbGlzdC4gSXQgaWdub3JlcyBhbGwg
YXJndW1lbnRzLgogICAgIHZvaWQgZHVtcEJhY2tGb3J3YXJkTGlzdChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFn
IHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgb3V0IHRoZQotICAgIC8vIHNjcm9s
bCBvZmZzZXRzIG9mIHRoZSBjaGlsZCBmcmFtZXMuICBJdCBpZ25vcmVzIGFsbC4KKyAgICAvLyBz
Y3JvbGwgb2Zmc2V0cyBvZiB0aGUgY2hpbGQgZnJhbWVzLiBJdCBpZ25vcmVzIGFsbC4KICAgICB2
b2lkIGR1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0
ZWxscyB0aGUgdGVzdF9zaGVsbCB0byByZWN1cnNpdmVseQpAQCAtMTI2LDE3ICsxMjYsMTcgQEAg
cHVibGljOgogICAgIC8vIGF0dGVtcHQgaXMgbWFkZS4gSXQgaWdub3JlcyBhbnkgYWRkaXRpb25h
bCBhcmd1bWVudHMuCiAgICAgdm9pZCBzZXRBY2NlcHRzRWRpdGluZyhjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICAvLyBGdW5jdGlvbnMgZm9yIGRlYWxpbmcgd2l0
aCB3aW5kb3dzLiAgQnkgZGVmYXVsdCB3ZSBibG9jayBhbGwgbmV3IHdpbmRvd3MuCisgICAgLy8g
RnVuY3Rpb25zIGZvciBkZWFsaW5nIHdpdGggd2luZG93cy4gQnkgZGVmYXVsdCB3ZSBibG9jayBh
bGwgbmV3IHdpbmRvd3MuCiAgICAgdm9pZCB3aW5kb3dDb3VudChjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cyhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRDbG9zZVJlbWFpbmluZ1dp
bmRvd3NXaGVuQ29tcGxldGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
Ci0gICAgLy8gQnkgZGVmYXVsdCwgdGVzdHMgZW5kIHdoZW4gcGFnZSBsb2FkIGlzIGNvbXBsZXRl
LiAgVGhlc2UgbWV0aG9kcyBhcmUgdXNlZAorICAgIC8vIEJ5IGRlZmF1bHQsIHRlc3RzIGVuZCB3
aGVuIHBhZ2UgbG9hZCBpcyBjb21wbGV0ZS4gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZAogICAgIC8v
IHRvIGRlbGF5IHRoZSBjb21wbGV0aW9uIG9mIHRoZSB0ZXN0IHVudGlsIG5vdGlmeURvbmUgaXMg
Y2FsbGVkLgogICAgIHZvaWQgd2FpdFVudGlsRG9uZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgdm9pZCBub3RpZnlEb25lKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKIAotICAgIC8vIE1ldGhvZHMgZm9yIGFkZGluZyBhY3Rpb25zIHRvIHRo
ZSB3b3JrIHF1ZXVlLiAgVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoCisgICAgLy8gTWV0aG9kcyBm
b3IgYWRkaW5nIGFjdGlvbnMgdG8gdGhlIHdvcmsgcXVldWUuIFVzZWQgaW4gY29uanVuY3Rpb24g
d2l0aAogICAgIC8vIHdhaXRVbnRpbERvbmUvbm90aWZ5RG9uZSBhYm92ZS4KICAgICB2b2lkIHF1
ZXVlQmFja05hdmlnYXRpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
ICAgIHZvaWQgcXVldWVGb3J3YXJkTmF2aWdhdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CkBAIC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIC8vIHRoZSB0ZXN0
LgogICAgIHZvaWQgc2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2Fkcyhjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSBzbWFydCBp
bnNlcnQvZGVsZXRlLiAgVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCisgICAgLy8gRW5hYmxl
IG9yIGRpc2FibGUgc21hcnQgaW5zZXJ0L2RlbGV0ZS4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1
bHQuCiAgICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgdHJhaWxp
bmcgd2hpdGVzcGFjZSBzZWxlY3Rpb24gb24gZG91YmxlIGNsaWNrLgpAQCAtMjQ1LDggKzI0NSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2
aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8vIFRoZSBm
b2xsb3dpbmcgYXJlIG9ubHkgc3R1YnMuICBUT0RPKHBhbWcpOiBJbXBsZW1lbnQgYW55IG9mIHRo
ZXNlIHRoYXQKLSAgICAvLyBhcmUgbmVlZGVkIHRvIHBhc3MgdGhlIGxheW91dCB0ZXN0cy4KKyAg
ICAvLyBUaGUgZm9sbG93aW5nIGFyZSBvbmx5IHN0dWJzLgorICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgYW55IG9mIHRoZXNlIHRoYXQgYXJlIG5lZWRlZCB0byBwYXNzIHRoZSBsYXlvdXQgdGVzdHMu
CiAgICAgdm9pZCBkdW1wQXNXZWJBcmNoaXZlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKICAgICB2b2lkIGR1bXBUaXRsZUNoYW5nZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlcihj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBAIC00MTksMTggKzQxOSwxNyBA
QCBwdWJsaWM6CiAgICAgLy8gd2FpdEZvclBvbGljeURlbGVnYXRlIHdhcyBjYWxsZWQuCiAgICAg
dm9pZCBwb2xpY3lEZWxlZ2F0ZURvbmUoKTsKIAotICAgIC8vIFJlaW5pdGlhbGl6ZXMgYWxsIHN0
YXRpYyB2YWx1ZXMuICBUaGUgcmVzZXQoKSBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZAotICAgIC8v
IGJlZm9yZSB0aGUgc3RhcnQgb2YgZWFjaCB0ZXN0IChjdXJyZW50bHkgZnJvbQotICAgIC8vIFRl
c3RTaGVsbDo6cnVuRmlsZVRlc3QpLgorICAgIC8vIFJlaW5pdGlhbGl6ZXMgYWxsIHN0YXRpYyB2
YWx1ZXMuIFRoZSByZXNldCgpIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkCisgICAgLy8gYmVmb3Jl
IHRoZSBzdGFydCBvZiBlYWNoIHRlc3QgKGN1cnJlbnRseSBmcm9tIFRlc3RTaGVsbDo6cnVuRmls
ZVRlc3QpLgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIC8vIEEgc2luZ2xlIGl0ZW0gaW4gdGhl
IHdvcmsgcXVldWUuCiAgICAgY2xhc3MgV29ya0l0ZW0gewogICAgIHB1YmxpYzoKLSAgICAgICAg
dmlydHVhbCB+V29ya0l0ZW0oKSB7fQorICAgICAgICB2aXJ0dWFsIH5Xb3JrSXRlbSgpIHsgfQog
CiAgICAgICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHN0YXJ0ZWQgYSBsb2FkLgotICAgICAg
ICB2aXJ0dWFsIGJvb2wgcnVuKFRlc3RTaGVsbCogc2hlbGwpID0gMDsKKyAgICAgICAgdmlydHVh
bCBib29sIHJ1bihUZXN0U2hlbGwqKSA9IDA7CiAgICAgfTsKIAogICAgIFRhc2tMaXN0KiB0YXNr
TGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CkBAIC00NDMsMTQgKzQ0MiwxNCBAQCBwcml2
YXRlOgogICAgIC8vIHF1ZXVlU2NyaXB0LgogICAgIGNsYXNzIFdvcmtRdWV1ZSB7CiAgICAgcHVi
bGljOgotICAgICAgICBXb3JrUXVldWUoTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIp
IDogbV9mcm96ZW4oZmFsc2UpLCBtX2NvbnRyb2xsZXIoY29udHJvbGxlcikge30KKyAgICAgICAg
V29ya1F1ZXVlKExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyKSA6IG1fZnJvemVuKGZh
bHNlKSwgbV9jb250cm9sbGVyKGNvbnRyb2xsZXIpIHsgfQogICAgICAgICB2aXJ0dWFsIH5Xb3Jr
UXVldWUoKTsKICAgICAgICAgdm9pZCBwcm9jZXNzV29ya1Nvb24oKTsKIAogICAgICAgICAvLyBS
ZXNldCB0aGUgc3RhdGUgb2YgdGhlIGNsYXNzIGJldHdlZW4gdGVzdHMuCiAgICAgICAgIHZvaWQg
cmVzZXQoKTsKIAotICAgICAgICB2b2lkIGFkZFdvcmsoV29ya0l0ZW0qIHdvcmspOworICAgICAg
ICB2b2lkIGFkZFdvcmsoV29ya0l0ZW0qKTsKIAogICAgICAgICB2b2lkIHNldEZyb3plbihib29s
IGZyb3plbikgeyBtX2Zyb3plbiA9IGZyb3plbjsgfQogICAgICAgICBib29sIGlzRW1wdHkoKSB7
IHJldHVybiBtX3F1ZXVlLmlzRW1wdHkoKTsgfQpAQCAtNDYwLDcgKzQ1OSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgcHJvY2Vzc1dvcmsoKTsKICAgICAgICAgY2xhc3MgV29ya1F1ZXVlVGFz
azogcHVibGljIE1ldGhvZFRhc2s8V29ya1F1ZXVlPiB7CiAgICAgICAgIHB1YmxpYzoKLSAgICAg
ICAgICAgIFdvcmtRdWV1ZVRhc2soV29ya1F1ZXVlKiBvYmplY3QpOiBNZXRob2RUYXNrPFdvcmtR
dWV1ZT4ob2JqZWN0KSB7fQorICAgICAgICAgICAgV29ya1F1ZXVlVGFzayhXb3JrUXVldWUqIG9i
amVjdCk6IE1ldGhvZFRhc2s8V29ya1F1ZXVlPihvYmplY3QpIHsgfQogICAgICAgICAgICAgdmly
dHVhbCB2b2lkIHJ1bklmVmFsaWQoKSB7IG1fb2JqZWN0LT5wcm9jZXNzV29yaygpOyB9CiAgICAg
ICAgIH07CiAKQEAgLTQ3OSw3ICs0NzgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcGxldGVO
b3RpZnlEb25lKGJvb2wgaXNUaW1lb3V0KTsKICAgICBjbGFzcyBOb3RpZnlEb25lVGltZWRPdXRU
YXNrOiBwdWJsaWMgTWV0aG9kVGFzazxMYXlvdXRUZXN0Q29udHJvbGxlcj4gewogICAgIHB1Ymxp
YzoKLSAgICAgICAgTm90aWZ5RG9uZVRpbWVkT3V0VGFzayhMYXlvdXRUZXN0Q29udHJvbGxlciog
b2JqZWN0KTogTWV0aG9kVGFzazxMYXlvdXRUZXN0Q29udHJvbGxlcj4ob2JqZWN0KSB7fQorICAg
ICAgICBOb3RpZnlEb25lVGltZWRPdXRUYXNrKExheW91dFRlc3RDb250cm9sbGVyKiBvYmplY3Qp
OiBNZXRob2RUYXNrPExheW91dFRlc3RDb250cm9sbGVyPihvYmplY3QpIHsgfQogICAgICAgICB2
aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIHsgbV9vYmplY3QtPmNvbXBsZXRlTm90aWZ5RG9uZSh0
cnVlKTsgfQogICAgIH07CiAKQEAgLTQ5NCw3ICs0OTMsNyBAQCBwcml2YXRlOgogICAgIC8vIFVz
ZWQgZm9yIHRlc3QgdGltZW91dHMuCiAgICAgVGFza0xpc3QgbV90YXNrTGlzdDsKIAotICAgIC8v
IE5vbi1vd25pbmcgcG9pbnRlci4gIFRoZSBMYXlvdXRUZXN0Q29udHJvbGxlciBpcyBvd25lZCBi
eSB0aGUgaG9zdC4KKyAgICAvLyBOb24tb3duaW5nIHBvaW50ZXIuIFRoZSBMYXlvdXRUZXN0Q29u
dHJvbGxlciBpcyBvd25lZCBieSB0aGUgaG9zdC4KICAgICBUZXN0U2hlbGwqIG1fc2hlbGw7CiAK
ICAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIHByb2R1Y2UgYSBwbGFpbiB0ZXh0
IGR1bXAgcmF0aGVyIHRoYW4gYQpAQCAtNTQ2LDE4ICs1NDUsMTggQEAgcHJpdmF0ZToKICAgICAv
LyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIGdlbmVyYXRlIHBpeGVsIHJlc3VsdHMgaW4g
ZHVtcEFzVGV4dCBtb2RlCiAgICAgYm9vbCBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzOwogCi0gICAg
Ly8gSWYgdHJ1ZSwgdGhlIGVsZW1lbnQgd2lsbCBiZSB0cmVhdGVkIGFzIGVkaXRhYmxlLiAgVGhp
cyB2YWx1ZSBpcyByZXR1cm5lZAorICAgIC8vIElmIHRydWUsIHRoZSBlbGVtZW50IHdpbGwgYmUg
dHJlYXRlZCBhcyBlZGl0YWJsZS4gVGhpcyB2YWx1ZSBpcyByZXR1cm5lZAogICAgIC8vIGZyb20g
dmFyaW91cyBlZGl0aW5nIGNhbGxiYWNrcyB0aGF0IGFyZSBjYWxsZWQganVzdCBiZWZvcmUgZWRp
dCBvcGVyYXRpb25zCiAgICAgLy8gYXJlIGFsbG93ZWQuCiAgICAgYm9vbCBtX2FjY2VwdHNFZGl0
aW5nOwogCi0gICAgLy8gSWYgdHJ1ZSwgbmV3IHdpbmRvd3MgY2FuIGJlIG9wZW5lZCB2aWEgamF2
YXNjcmlwdCBvciBieSBwbHVnaW5zLiAgQnkKKyAgICAvLyBJZiB0cnVlLCBuZXcgd2luZG93cyBj
YW4gYmUgb3BlbmVkIHZpYSBqYXZhc2NyaXB0IG9yIGJ5IHBsdWdpbnMuIEJ5CiAgICAgLy8gZGVm
YXVsdCwgc2V0IHRvIGZhbHNlIGFuZCBjYW4gYmUgdG9nZ2xlZCB0byB0cnVlIHVzaW5nCiAgICAg
Ly8gc2V0Q2FuT3BlbldpbmRvd3MoKS4KICAgICBib29sIG1fY2FuT3BlbldpbmRvd3M7CiAKICAg
ICAvLyBXaGVuIHJlc2V0IGlzIGNhbGxlZCwgZ28gdGhyb3VnaCBhbmQgY2xvc2UgYWxsIGJ1dCB0
aGUgbWFpbiB0ZXN0IHNoZWxsCi0gICAgLy8gd2luZG93LiAgQnkgZGVmYXVsdCwgc2V0IHRvIHRy
dWUgYnV0IHRvZ2dsZWQgdG8gZmFsc2UgdXNpbmcKKyAgICAvLyB3aW5kb3cuIEJ5IGRlZmF1bHQs
IHNldCB0byB0cnVlIGJ1dCB0b2dnbGVkIHRvIGZhbHNlIHVzaW5nCiAgICAgLy8gc2V0Q2xvc2VS
ZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkuCiAgICAgYm9vbCBtX2Nsb3NlUmVtYWluaW5n
V2luZG93czsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a1NwZWxsQ2hlY2suY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1NwZWxs
Q2hlY2suY3BwCmluZGV4IDcyNDMxNTI4MGM5ODE3NWE3MDg4NTU2NjdkYjY1ZDg4NzM4Yjk2ZWQu
Ljg2MDE3NmJhZmU4NTQxZDhiZjA0MjUxNzJjMWM0OTI2MzUxNmEwYmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrU3BlbGxDaGVjay5jcHAKQEAgLTM5LDkgKzM5
LDkgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIE1vY2tTcGVsbENoZWNrOjpNb2NrU3Bl
bGxDaGVjaygpCi0gICAgOiBtX2luaXRpYWxpemVkKGZhbHNlKSB7fQorICAgIDogbV9pbml0aWFs
aXplZChmYWxzZSkgeyB9CiAKLU1vY2tTcGVsbENoZWNrOjp+TW9ja1NwZWxsQ2hlY2soKSB7fQor
TW9ja1NwZWxsQ2hlY2s6On5Nb2NrU3BlbGxDaGVjaygpIHsgfQogCiBzdGF0aWMgYm9vbCBpc05v
dEFTQ0lJQWxwaGEoVUNoYXIgY2gpIHsgcmV0dXJuICFpc0FTQ0lJQWxwaGEoY2gpOyB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrU3BlbGxDaGVjay5oCmluZGV4IGRj
ZDM3ZjNlYjA1M2I1NDczY2MxYjk2NDI4NWRmOGI1N2RlY2RkZGYuLmJjZTA1Yzc3MjhhZWNjZjRl
MzdmODhjZTJmYWVkNTRhMjk4YzZiYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTW9ja1NwZWxsQ2hlY2suaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQqIG1pc3NwZWxsZWRMZW5ndGgpOwogCiAgICAgdm9pZCBmaWxs
U3VnZ2VzdGlvbkxpc3QoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHdvcmQsIFZlY3RvcjxXZWJL
aXQ6OldlYlN0cmluZz4qIHN1Z2dlc3Rpb25zKTsKKwogcHJpdmF0ZToKICAgICAvLyBJbml0aWFs
aXplIHRoZSBpbnRlcm5hbCByZXNvdXJjZXMgaWYgd2UgbmVlZCB0byBpbml0aWFsaXplIGl0Lgog
ICAgIC8vIEluaXRpYWxpemluZyB0aGlzIG9iamVjdCBtYXkgdGFrZSBsb25nIHRpbWUuIFRvIHBy
ZXZlbnQgZnJvbSBodXJ0aW5nCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5oCmluZGV4IDY4OWE5MDgzNjdlN2Q2YjRmZGZhNWJl
OGVkY2QzMWQxMGI2ODM5M2QuLmQ0NzY1MDlmZDMyZDRhMDcwODkyYjNjYzY5MmNlYWU2ZDMxY2Rh
YjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlv
blByZXNlbnRlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNh
dGlvblByZXNlbnRlci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFRlc3RTaGVsbDsKIC8vIEEg
Y2xhc3MgdGhhdCBpbXBsZW1lbnRzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlciBmb3IgRFJULgog
Y2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyIDogcHVibGljIFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uUHJlc2VudGVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBOb3RpZmljYXRpb25QcmVzZW50
ZXIoVGVzdFNoZWxsKiBzaGVsbCkgOiBtX3NoZWxsKHNoZWxsKSB7fQorICAgIGV4cGxpY2l0IE5v
dGlmaWNhdGlvblByZXNlbnRlcihUZXN0U2hlbGwqIHNoZWxsKSA6IG1fc2hlbGwoc2hlbGwpIHsg
fQogCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlciB0byBzaW11bGF0
ZSBhIHVzZXIgZ3JhbnRpbmcgcGVybWlzc2lvbi4KICAgICB2b2lkIGdyYW50UGVybWlzc2lvbihj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYgb3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rhc2suY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGFzay5jcHAKaW5kZXggODYzODkxNTVhZTFmMGU0NjIxZjQ0M2MwNzBlNGZmYzM1MDc5M2Uz
Mi4uMWU3YjkzOGMzNTU0ZmViMjJmNjdkMDAzZTI4YjdkZjYzMjBjMzU4NCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGFzay5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGFzay5jcHAKQEAgLTM0LDcgKzM0LDEyIEBACiAjaW5jbHVkZSAi
V2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViS2l0Q2xpZW50LmgiCiAKLVdlYlRhc2s6OldlYlRhc2so
VGFza0xpc3QqIGxpc3QpOiBtX3Rhc2tMaXN0KGxpc3QpIHsgbV90YXNrTGlzdC0+cmVnaXN0ZXJU
YXNrKHRoaXMpOyB9CitXZWJUYXNrOjpXZWJUYXNrKFRhc2tMaXN0KiBsaXN0KQorICAgIDogbV90
YXNrTGlzdChsaXN0KQoreworICAgIG1fdGFza0xpc3QtPnJlZ2lzdGVyVGFzayh0aGlzKTsKK30K
KwogV2ViVGFzazo6fldlYlRhc2soKQogewogICAgIGlmIChtX3Rhc2tMaXN0KQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGFzay5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGFzay5oCmluZGV4IDU3ZDI3ZWE2NmQzY2M1NjgzZTg3MGNmYWFiNTYz
ODQ0MDViMzU5MzAuLjBiMzJjNDcyYjI3NTA0ZTVmYjYwOGQ2YmU0MDFmZGE2ODgwYjk3NDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rhc2suaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UYXNrLmgKQEAgLTU3LDExICs1NywxMiBAQCBwcm90
ZWN0ZWQ6CiAKIGNsYXNzIFRhc2tMaXN0IHsKIHB1YmxpYzoKLSAgICBUYXNrTGlzdCgpIHt9Cisg
ICAgVGFza0xpc3QoKSB7IH0KICAgICB+VGFza0xpc3QoKSB7IHJldm9rZUFsbCgpOyB9CiAgICAg
dm9pZCByZWdpc3RlclRhc2soV2ViVGFzayogdGFzaykgeyBtX3Rhc2tzLmFwcGVuZCh0YXNrKTsg
fQotICAgIHZvaWQgdW5yZWdpc3RlclRhc2soV2ViVGFzayogdGFzayk7CisgICAgdm9pZCB1bnJl
Z2lzdGVyVGFzayhXZWJUYXNrKik7CiAgICAgdm9pZCByZXZva2VBbGwoKTsKKwogcHJpdmF0ZToK
ICAgICBWZWN0b3I8V2ViVGFzayo+IG1fdGFza3M7CiB9OwpAQCAtNzEsNyArNzIsNyBAQCBwcml2
YXRlOgogLy8gQ2xhc3MgVCBtdXN0IGhhdmUgIlRhc2tMaXN0KiB0YXNrTGlzdCgpIi4KIHRlbXBs
YXRlPGNsYXNzIFQ+IGNsYXNzIE1ldGhvZFRhc2s6IHB1YmxpYyBXZWJUYXNrIHsKIHB1YmxpYzoK
LSAgICBNZXRob2RUYXNrKFQqIG9iamVjdCk6IFdlYlRhc2sob2JqZWN0LT50YXNrTGlzdCgpKSwg
bV9vYmplY3Qob2JqZWN0KSB7fQorICAgIE1ldGhvZFRhc2soVCogb2JqZWN0KTogV2ViVGFzayhv
YmplY3QtPnRhc2tMaXN0KCkpLCBtX29iamVjdChvYmplY3QpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBydW4oKQogICAgIHsKICAgICAgICAgaWYgKG1fb2JqZWN0KQpAQCAtODQsMTEgKzg1LDEyIEBA
IHB1YmxpYzoKICAgICAgICAgbV90YXNrTGlzdCA9IDA7CiAgICAgfQogICAgIHZpcnR1YWwgdm9p
ZCBydW5JZlZhbGlkKCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgVCogbV9vYmplY3Q7CiB9Owog
Ci12b2lkIHBvc3RUYXNrKFdlYlRhc2sqIHRhc2spOwotdm9pZCBwb3N0RGVsYXllZFRhc2soV2Vi
VGFzayogdGFzaywgaW50NjRfdCBtcyk7Cit2b2lkIHBvc3RUYXNrKFdlYlRhc2sqKTsKK3ZvaWQg
cG9zdERlbGF5ZWRUYXNrKFdlYlRhc2sqLCBpbnQ2NF90IG1zKTsKIAogI2VuZGlmIC8vIFRhc2tf
aApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJp
bnRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0RXZlbnRQcmludGVy
LmNwcAppbmRleCBjMjNlMWQ0NWQ0MGUxYzkxNDM1N2NmMzk3MTQ3MWJiNjMwN2VlNTQ5Li4xNWRl
NWU2MjY4NTBmN2ZjODZlNTdhM2UyOWM1ODM1NGZiZGYxZTM3IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0RXZlbnRQcmludGVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0RXZlbnRQcmludGVyLmNwcApAQCAtMzcsNyArMzcs
NyBAQAogCiBjbGFzcyBEUlRQcmludGVyIDogcHVibGljIFRlc3RFdmVudFByaW50ZXIgewogcHVi
bGljOgotICAgIERSVFByaW50ZXIoKSB7fQorICAgIERSVFByaW50ZXIoKSB7IH0KICAgICB2b2lk
IGhhbmRsZVRlc3RIZWFkZXIoY29uc3QgY2hhciogdXJsKSBjb25zdDsKICAgICB2b2lkIGhhbmRs
ZVRpbWVkT3V0KCkgY29uc3Q7CiAgICAgdm9pZCBoYW5kbGVUZXh0SGVhZGVyKCkgY29uc3Q7CkBA
IC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogY2xhc3MgVGVzdFNoZWxsUHJpbnRlciA6IHB1Ymxp
YyBUZXN0RXZlbnRQcmludGVyIHsKIHB1YmxpYzoKLSAgICBUZXN0U2hlbGxQcmludGVyKCkge30K
KyAgICBUZXN0U2hlbGxQcmludGVyKCkgeyB9CiAgICAgdm9pZCBoYW5kbGVUZXN0SGVhZGVyKGNv
bnN0IGNoYXIqIHVybCkgY29uc3Q7CiAgICAgdm9pZCBoYW5kbGVUaW1lZE91dCgpIGNvbnN0Owog
ICAgIHZvaWQgaGFuZGxlVGV4dEhlYWRlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5jcHAKaW5k
ZXggOTY1M2MwNzhmMTFkYWFkNDQ3NjE1NWI2ZTVmYWNlZWZhNDY1ZTQ2Zi4uYWQ2ZmNmZmY0MzY4
M2JiODFhMDU0N2U1ZjJmZTZkNDk5MGJlMGZmMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC01
MiwxNiArNTIsMTYgQEAgUGFzc1JlZlB0cjxUZXN0TmF2aWdhdGlvbkVudHJ5PiBUZXN0TmF2aWdh
dGlvbkVudHJ5OjpjcmVhdGUoCiB9CiAKIFRlc3ROYXZpZ2F0aW9uRW50cnk6OlRlc3ROYXZpZ2F0
aW9uRW50cnkoKQotICAgIDogbV9wYWdlSUQoLTEpIHt9CisgICAgOiBtX3BhZ2VJRCgtMSkgeyB9
CiAKIFRlc3ROYXZpZ2F0aW9uRW50cnk6OlRlc3ROYXZpZ2F0aW9uRW50cnkoCiAgICAgaW50IHBh
Z2VJRCwgY29uc3QgV2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgdGl0bGUsIGNvbnN0IFdl
YlN0cmluZyYgdGFyZ2V0RnJhbWUpCiAgICAgOiBtX3BhZ2VJRChwYWdlSUQpCiAgICAgLCBtX3Vy
bCh1cmwpCiAgICAgLCBtX3RpdGxlKHRpdGxlKQotICAgICwgbV90YXJnZXRGcmFtZSh0YXJnZXRG
cmFtZSkge30KKyAgICAsIG1fdGFyZ2V0RnJhbWUodGFyZ2V0RnJhbWUpIHsgfQogCi1UZXN0TmF2
aWdhdGlvbkVudHJ5Ojp+VGVzdE5hdmlnYXRpb25FbnRyeSgpIHt9CitUZXN0TmF2aWdhdGlvbkVu
dHJ5Ojp+VGVzdE5hdmlnYXRpb25FbnRyeSgpIHsgfQogCiB2b2lkIFRlc3ROYXZpZ2F0aW9uRW50
cnk6OnNldENvbnRlbnRTdGF0ZShjb25zdCBXZWJIaXN0b3J5SXRlbSYgc3RhdGUpCiB7CkBAIC03
Niw3ICs3Niw3IEBAIFRlc3ROYXZpZ2F0aW9uQ29udHJvbGxlcjo6VGVzdE5hdmlnYXRpb25Db250
cm9sbGVyKE5hdmlnYXRpb25Ib3N0KiBob3N0KQogICAgICwgbV9sYXN0Q29tbWl0dGVkRW50cnlJ
bmRleCgtMSkKICAgICAsIG1fcGVuZGluZ0VudHJ5SW5kZXgoLTEpCiAgICAgLCBtX2hvc3QoaG9z
dCkKLSAgICAsIG1fbWF4UGFnZUlEKC0xKSB7fQorICAgICwgbV9tYXhQYWdlSUQoLTEpIHsgfQog
CiBUZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXI6On5UZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXIoKQog
ewpAQCAtOTYsOCArOTYsOCBAQCB2b2lkIFRlc3ROYXZpZ2F0aW9uQ29udHJvbGxlcjo6cmVsb2Fk
KCkKICAgICAvLyBCYXNlIHRoZSBuYXZpZ2F0aW9uIG9uIHdoZXJlIHdlIGFyZSBub3cuLi4KICAg
ICBpbnQgY3VycmVudEluZGV4ID0gY3VycmVudEVudHJ5SW5kZXgoKTsKIAotICAgIC8vIElmIHdl
IGFyZSBubyB3aGVyZSwgdGhlbiB3ZSBjYW4ndCByZWxvYWQuICBUT0RPKGRhcmluKTogV2Ugc2hv
dWxkIGFkZCBhCi0gICAgLy8gQ2FuUmVsb2FkIG1ldGhvZC4KKyAgICAvLyBJZiB3ZSBhcmUgbm8g
d2hlcmUsIHRoZW4gd2UgY2FuJ3QgcmVsb2FkLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRk
IGEgQ2FuUmVsb2FkIG1ldGhvZC4KICAgICBpZiAoY3VycmVudEluZGV4ID09IC0xKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIFRlc3ROYXZpZ2F0aW9uQ29udHJv
bGxlcjo6Z29Ub0luZGV4KGludCBpbmRleCkKIHZvaWQgVGVzdE5hdmlnYXRpb25Db250cm9sbGVy
Ojpsb2FkRW50cnkoVGVzdE5hdmlnYXRpb25FbnRyeSogZW50cnkpCiB7CiAgICAgLy8gV2hlbiBu
YXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UsIHdlIGRvbid0IGtub3cgZm9yIHN1cmUgaWYgd2Ugd2ls
bCBhY3R1YWxseQotICAgIC8vIGVuZCB1cCBsZWF2aW5nIHRoZSBjdXJyZW50IHBhZ2UuICBUaGUg
bmV3IHBhZ2UgbG9hZCBjb3VsZCBmb3IgZXhhbXBsZQorICAgIC8vIGVuZCB1cCBsZWF2aW5nIHRo
ZSBjdXJyZW50IHBhZ2UuIFRoZSBuZXcgcGFnZSBsb2FkIGNvdWxkIGZvciBleGFtcGxlCiAgICAg
Ly8gcmVzdWx0IGluIGEgZG93bmxvYWQgb3IgYSAnbm8gY29udGVudCcgcmVzcG9uc2UgKGUuZy4s
IGEgbWFpbHRvOiBVUkwpLgogICAgIGRpc2NhcmRQZW5kaW5nRW50cnkoKTsKICAgICBtX3BlbmRp
bmdFbnRyeSA9IGVudHJ5OwpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgVGVzdE5hdmlnYXRpb25D
b250cm9sbGVyOjpkaWROYXZpZ2F0ZVRvRW50cnkoVGVzdE5hdmlnYXRpb25FbnRyeSogZW50cnkp
CiAKICAgICAvLyBPdGhlcndpc2UsIHdlIGp1c3QgbmVlZCB0byB1cGRhdGUgYW4gZXhpc3Rpbmcg
ZW50cnkgd2l0aCBtYXRjaGluZyBQYWdlSUQuCiAgICAgLy8gSWYgdGhlIGV4aXN0aW5nIGVudHJ5
IGNvcnJlc3BvbmRzIHRvIHRoZSBlbnRyeSB3aGljaCBpcyBwZW5kaW5nLCB0aGVuIHdlCi0gICAg
Ly8gbXVzdCB1cGRhdGUgdGhlIGN1cnJlbnQgZW50cnkgaW5kZXggYWNjb3JkaW5nbHkuICBXaGVu
IG5hdmlnYXRpbmcgdG8gdGhlCisgICAgLy8gbXVzdCB1cGRhdGUgdGhlIGN1cnJlbnQgZW50cnkg
aW5kZXggYWNjb3JkaW5nbHkuIFdoZW4gbmF2aWdhdGluZyB0byB0aGUKICAgICAvLyBzYW1lIFVS
TCwgYSBuZXcgUGFnZUlEIGlzIG5vdCBjcmVhdGVkLgogCiAgICAgaW50IGV4aXN0aW5nRW50cnlJ
bmRleCA9IGVudHJ5SW5kZXhXaXRoUGFnZUlEKGVudHJ5LT5wYWdlSUQoKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXIu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxl
ci5oCmluZGV4IDg1MDJhOTZhOWNlMzRiYTc4NjVmNjU4YzFlNTVjYTVlODM3NTg0OTUuLmM0YmEz
MzVhMTk2N2JhYzZlMmRjYjc1NTc3ZDJmZDFlZDZjYjBiYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oCkBA
IC00Niw3ICs0Niw3IEBAIGNsYXNzIFRlc3RTaGVsbEV4dHJhRGF0YSA6IHB1YmxpYyBXZWJLaXQ6
OldlYkRhdGFTb3VyY2U6OkV4dHJhRGF0YSB7CiBwdWJsaWM6CiAgICAgVGVzdFNoZWxsRXh0cmFE
YXRhKGludDMyX3QgcGVuZGluZ1BhZ2VJRCkKICAgICAgICAgOiBwZW5kaW5nUGFnZUlEKHBlbmRp
bmdQYWdlSUQpCi0gICAgICAgICwgcmVxdWVzdENvbW1pdHRlZChmYWxzZSkge30KKyAgICAgICAg
LCByZXF1ZXN0Q29tbWl0dGVkKGZhbHNlKSB7IH0KIAogICAgIC8vIENvbnRhaW5zIHRoZSBwYWdl
X2lkIGZvciB0aGlzIG5hdmlnYXRpb24gb3IgLTEgaWYgdGhlcmUgaXMgbm9uZSB5ZXQuCiAgICAg
aW50MzJfdCBwZW5kaW5nUGFnZUlEOwpAQCAtMTQyLDcgKzE0Miw3IEBAIHB1YmxpYzoKICAgICBp
bnQgZW50cnlDb3VudCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4obV9lbnRyaWVz
LnNpemUoKSk7IH0KIAogICAgIC8vIFJldHVybnMgdGhlIGFjdGl2ZSBlbnRyeSwgd2hpY2ggaXMg
dGhlIHBlbmRpbmcgZW50cnkgaWYgYSBuYXZpZ2F0aW9uIGlzIGluCi0gICAgLy8gcHJvZ3Jlc3Mg
b3IgdGhlIGxhc3QgY29tbWl0dGVkIGVudHJ5IG90aGVyd2lzZS4gIE5PVEU6IFRoaXMgY2FuIGJl
IDAhIQorICAgIC8vIHByb2dyZXNzIG9yIHRoZSBsYXN0IGNvbW1pdHRlZCBlbnRyeSBvdGhlcndp
c2UuIE5PVEU6IFRoaXMgY2FuIGJlIDAhIQogICAgIC8vCiAgICAgLy8gSWYgeW91IGFyZSB0cnlp
bmcgdG8gZ2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBOYXZpZ2F0aW9uQ29udHJvbGxlckJh
c2UsCiAgICAgLy8gdGhpcyBpcyB0aGUgbWV0aG9kIHlvdSB3aWxsIHR5cGljYWxseSB3YW50IHRv
IGNhbGwuCkBAIC0xNTMsOCArMTUzLDcgQEAgcHVibGljOgogICAgIC8vIGl0IGlzIHRoZSBtX3Bl
bmRpbmdFbnRyeUluZGV4LgogICAgIGludCBjdXJyZW50RW50cnlJbmRleCgpIGNvbnN0OwogCi0g
ICAgLy8gUmV0dXJucyB0aGUgZW50cnkgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4gIFJldHVybnMg
MCBpZiBvdXQgb2YKLSAgICAvLyBib3VuZHMuCisgICAgLy8gUmV0dXJucyB0aGUgZW50cnkgYXQg
dGhlIHNwZWNpZmllZCBpbmRleC4gUmV0dXJucyAwIGlmIG91dCBvZiBib3VuZHMuCiAgICAgVGVz
dE5hdmlnYXRpb25FbnRyeSogZW50cnlBdEluZGV4KGludCkgY29uc3Q7CiAKICAgICAvLyBSZXR1
cm4gdGhlIGVudHJ5IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBhbmQgcGFnZSBJRCwgb3Ig
MCBpZgpAQCAtMTkyLDggKzE5MSw4IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBOYXZpZ2F0aW9u
RW50cnlMaXN0OjppdGVyYXRvciBOYXZpZ2F0aW9uRW50cnlMaXN0SXRlcmF0b3I7CiAgICAgTmF2
aWdhdGlvbkVudHJ5TGlzdCBtX2VudHJpZXM7CiAKLSAgICAvLyBBbiBlbnRyeSB3ZSBoYXZlbid0
IGdvdHRlbiBhIHJlc3BvbnNlIGZvciB5ZXQuICBUaGlzIHdpbGwgYmUgZGlzY2FyZGVkCi0gICAg
Ly8gd2hlbiB3ZSBuYXZpZ2F0ZSBhZ2Fpbi4gIEl0J3MgdXNlZCBvbmx5IHNvIHdlIGtub3cgd2hh
dCB0aGUgY3VycmVudGx5CisgICAgLy8gQW4gZW50cnkgd2UgaGF2ZW4ndCBnb3R0ZW4gYSByZXNw
b25zZSBmb3IgeWV0LiBUaGlzIHdpbGwgYmUgZGlzY2FyZGVkCisgICAgLy8gd2hlbiB3ZSBuYXZp
Z2F0ZSBhZ2Fpbi4gSXQncyB1c2VkIG9ubHkgc28gd2Uga25vdyB3aGF0IHRoZSBjdXJyZW50bHkK
ICAgICAvLyBkaXNwbGF5ZWQgdGFiIGlzLgogICAgIFJlZlB0cjxUZXN0TmF2aWdhdGlvbkVudHJ5
PiBtX3BlbmRpbmdFbnRyeTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKaW5kZXggNDFhZmExMGMwMDdkOTA1Y2FhYzcyNTJkNTE5N2M3NDBjZmE5ZjE3Yi4u
ZTg4ZjQwZjkwNjExNjIyZGVmYmJhOGI3YTM1MzUzMTk5NzE0YTJmNCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0zODUsOSArMzg1LDggQEAgc3Rh
dGljIHN0cmluZyBkdW1wSGlzdG9yeUl0ZW0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGl0ZW0sIGlu
dCBpbmRlbnQsIGJvb2wgaXNDdXIKICAgICBpZiAoaXNDdXJyZW50KSB7CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoImN1cnItPiIpOwogICAgICAgICByZXN1bHQuYXBwZW5kKGluZGVudCAtIDYsICcg
Jyk7IC8vIDYgPT0gImN1cnItPiIubGVuZ3RoKCkKLSAgICB9IGVsc2UgeworICAgIH0gZWxzZQog
ICAgICAgICByZXN1bHQuYXBwZW5kKGluZGVudCwgJyAnKTsKLSAgICB9CiAKICAgICBzdHJpbmcg
dXJsID0gaXRlbS51cmxTdHJpbmcoKS51dGY4KCk7CiAgICAgc2l6ZV90IHBvczsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKaW5kZXggMmE2OGIyNGRjZjU0NGE3ZDJj
N2I3ZjY3MTNlZjY0MGQ4ZTYyZWExOC4uMmRiNGM5NGEwNGFkOWI0MDQ1ZGYwOWM5MDUyY2I4MjM3
YmRkNWI5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKQEAg
LTc1LDcgKzc1LDcgQEAgc3RydWN0IFRlc3RQYXJhbXMgewogICAgICAgICAsIGR1bXBQaXhlbHMo
ZmFsc2UpCiAgICAgICAgICwgZGVidWdSZW5kZXJUcmVlKGZhbHNlKQogICAgICAgICAsIGRlYnVn
TGF5ZXJUcmVlKGZhbHNlKQotICAgICAgICAsIHByaW50U2VwYXJhdG9ycyhmYWxzZSkge30KKyAg
ICAgICAgLCBwcmludFNlcGFyYXRvcnMoZmFsc2UpIHsgfQogfTsKIAogY2xhc3MgVGVzdFNoZWxs
IHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3YWl0VGVzdEZpbmlzaGVk
KCk7CiAKICAgICAvLyBPcGVyYXRpb25zIHRvIHRoZSBtYWluIHdpbmRvdy4KLSAgICB2b2lkIGxv
YWRVUkwoY29uc3QgV2ViS2l0OjpXZWJVUkwmIHVybCk7CisgICAgdm9pZCBsb2FkVVJMKGNvbnN0
IFdlYktpdDo6V2ViVVJMJik7CiAgICAgdm9pZCByZWxvYWQoKTsKICAgICB2b2lkIGdvVG9PZmZz
ZXQoaW50IG9mZnNldCk7CiAgICAgaW50IG5hdmlnYXRpb25FbnRyeUNvdW50KCkgY29uc3Q7CkBA
IC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGVnYWN5QWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fbGVnYWN5QWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgPSBlbmFibGVk
OyB9CiAjaWYgZGVmaW5lZChPU19XSU4pCi0gICAgLy8gQWNjZXNzIHRvIHRoZSBmaW5pc2hlZCBl
dmVudC4gIFVzZWQgYnkgdGhlIHN0YXRpYyBXYXRjaERvZyB0aHJlYWQuCisgICAgLy8gQWNjZXNz
IHRvIHRoZSBmaW5pc2hlZCBldmVudC4gVXNlZCBieSB0aGUgc3RhdGljIFdhdGNoRG9nIHRocmVh
ZC4KICAgICBIQU5ETEUgZmluaXNoZWRFdmVudCgpIHsgcmV0dXJuIG1fZmluaXNoZWRFdmVudDsg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbFdpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGxX
aW4uY3BwCmluZGV4IGY4Mjc3MWY1YTUxMTRjYzdhMzAyMjQ0MThiZWNjYmI0MzQyY2VhZDkuLjg1
MGU1ZGU4MWI2OWY2MTFkNDg0YTRiYjlkN2UwZjcxM2YxYmUwZTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbFdpbi5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcApAQCAtODMsOSArODMsOSBAQCB2
b2lkIFRlc3RTaGVsbDo6d2FpdFRlc3RGaW5pc2hlZCgpCiAgICAgbV90ZXN0SXNQZW5kaW5nID0g
dHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBhIHdhdGNoZG9nIHRocmVhZCB3aGljaCBqdXN0IHNldHMg
YSB0aW1lciBhbmQKLSAgICAvLyBraWxscyB0aGUgcHJvY2VzcyBpZiBpdCB0aW1lcyBvdXQuICBU
aGlzIGNhdGNoZXMgcmVhbGx5CisgICAgLy8ga2lsbHMgdGhlIHByb2Nlc3MgaWYgaXQgdGltZXMg
b3V0LiBUaGlzIGNhdGNoZXMgcmVhbGx5CiAgICAgLy8gYmFkIGhhbmdzIHdoZXJlIHRoZSBzaGVs
bCBpc24ndCBjb21pbmcgYmFjayB0byB0aGUKLSAgICAvLyBtZXNzYWdlIGxvb3AuICBJZiB0aGUg
d2F0Y2hkb2cgaXMgd2hhdCBjYXRjaGVzIGEKKyAgICAvLyBtZXNzYWdlIGxvb3AuIElmIHRoZSB3
YXRjaGRvZyBpcyB3aGF0IGNhdGNoZXMgYQogICAgIC8vIHRpbWVvdXQsIGl0IGNhbid0IGRvIGFu
eXRoaW5nIGV4Y2VwdCB0ZXJtaW5hdGUgdGhlIHRlc3QKICAgICAvLyBzaGVsbCwgd2hpY2ggaXMg
dW5mb3J0dW5hdGUuCiAgICAgbV9maW5pc2hlZEV2ZW50ID0gQ3JlYXRlRXZlbnQoMCwgVFJVRSwg
RkFMU0UsIDApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFdlYldvcmtlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYldvcmtl
ci5oCmluZGV4IDg5ZTE5YWZiM2IyZDQ2MDlmYWZkMGM3N2Q1MzE4ZmUwMzAxOTQzYzIuLjcxYmZm
Y2U2MjhmN2IwMGIwNDY4ZDAzYjM3NzI2OGNiNmY1ZWY5M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJXb3JrZXIuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViV29ya2VyLmgKQEAgLTU4LDIzICs1OCwyMyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgLy8gV2ViV29ya2VyIG1ldGhvZHM6Ci0gICAgdmlydHVhbCB2b2lk
IHN0YXJ0V29ya2VyQ29udGV4dChjb25zdCBXZWJLaXQ6OldlYlVSTCYsIGNvbnN0IFdlYktpdDo6
V2ViU3RyaW5nJiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKSB7fQotICAgIHZpcnR1YWwgdm9p
ZCB0ZXJtaW5hdGVXb3JrZXJDb250ZXh0KCkge30KLSAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3Nh
Z2VUb1dvcmtlckNvbnRleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmLCBjb25zdCBXZWJLaXQ6
OldlYk1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5Jikge30KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRX
b3JrZXJDb250ZXh0KGNvbnN0IFdlYktpdDo6V2ViVVJMJiwgY29uc3QgV2ViS2l0OjpXZWJTdHJp
bmcmLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXJt
aW5hdGVXb3JrZXJDb250ZXh0KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9X
b3JrZXJDb250ZXh0KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiwgY29uc3QgV2ViS2l0OjpXZWJN
ZXNzYWdlUG9ydENoYW5uZWxBcnJheSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJPYmpl
Y3REZXN0cm95ZWQoKQogICAgIHsKICAgICAgICAgLy8gUmVsZWFzZXMgdGhlIHJlZmVyZW5jZSBo
ZWxkIGZvciB3b3JrZXIgb2JqZWN0LgogICAgICAgICBkZXJlZigpOwogICAgIH0KLSAgICB2aXJ0
dWFsIHZvaWQgY2xpZW50RGVzdHJveWVkKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgY2xpZW50RGVz
dHJveWVkKCkgeyB9CiAKICAgICAvLyBXZWJXb3JrZXJDbGllbnQgbWV0aG9kczoKLSAgICB2aXJ0
dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChjb25zdCBXZWJLaXQ6OldlYlN0cmlu
ZyYsIGNvbnN0IFdlYktpdDo6V2ViTWVzc2FnZVBvcnRDaGFubmVsQXJyYXkmKSB7fQotICAgIHZp
cnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViS2l0OjpXZWJT
dHJpbmcmLCBpbnQsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJikge30KLSAgICB2aXJ0dWFsIHZv
aWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoaW50LCBpbnQsIGludCwgaW50LCBj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYsIGludCwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKSB7
fQotICAgIHZpcnR1YWwgdm9pZCBjb25maXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3QoYm9vbCkg
e30KLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wpIHt9Ci0gICAg
dmlydHVhbCB2b2lkIHdvcmtlckNvbnRleHRDbG9zZWQoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBw
b3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiwgY29uc3Qg
V2ViS2l0OjpXZWJNZXNzYWdlUG9ydENoYW5uZWxBcnJheSYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmLCBp
bnQsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBvc3RD
b25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCwgaW50LCBpbnQsIGludCwgY29uc3QgV2Vi
S2l0OjpXZWJTdHJpbmcmLCBpbnQsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJikgeyB9CisgICAg
dmlydHVhbCB2b2lkIGNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChib29sKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCB3b3JrZXJDb250ZXh0Q2xvc2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdvcmtl
ckNvbnRleHREZXN0cm95ZWQoKQogICAgIHsKICAgICAgICAgLy8gUmVsZWFzZXMgdGhlIHJlZmVy
ZW5jZSBoZWxkIGZvciB3b3JrZXIgY29udGV4dCBvYmplY3QuCkBAIC04Niw3ICs4Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEYXRhYmFzZShXZWJLaXQ6OldlYkZyYW1lKiwg
Y29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYsIHVuc2ln
bmVkIGxvbmcpIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICB+VGVzdFdlYldvcmtl
cigpIHt9CisgICAgflRlc3RXZWJXb3JrZXIoKSB7IH0KICAgICBmcmllbmQgY2xhc3MgV1RGOjpS
ZWZDb3VudGVkPFRlc3RXZWJXb3JrZXI+OwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAppbmRleCAxZDI3ZGQ2MTU4
OGI5NDc4OGUyODQ0N2YzMWY2MzlmM2EwMjQ5MmZlLi4yMmFhNGM2ZjVhMzE2NmM4MzIyMWZlNDc1
NDA1MWY0MmU2NjgxOGM0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcApAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUg
IldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldlYlZpZXcu
aCIKLSNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgorI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVGhlbWVDb250cm9s
RFJUV2luLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUNvbnRyb2xE
UlRXaW4uaAppbmRleCA2NDQ4ZGM2N2M5MzgyNWU3NTg4YjI2MDVmNjRiNWUzNDRmZmFkNjY3Li4z
OTdmYWYzYWM3MWY1ZmIwZDA1ZWYwM2JiNzVmMzc2YzQ0MzJmYTdhIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUNvbnRyb2xEUlRXaW4uaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUNvbnRyb2xEUlRXaW4uaApAQCAt
MTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICAvLyBmb3IgZHJhd2luZyB0aGVtIGlzIGRlcGVu
ZGVudCBvbiB3aGF0IFdlYktpdCB0ZWxscyB1cyB0byBkby4KICAgICAvLyBJZiBkcmF3RWRnZXMg
aXMgdHJ1ZSwgZHJhdyBhbiBlZGdlIGFyb3VuZCB0aGUgY29udHJvbC4gSWYKICAgICAvLyBmaWxs
Q29udGVudEFyZWEgaXMgdHJ1ZSwgZmlsbCB0aGUgY29udGVudCBhcmVhIHdpdGggdGhlIGdpdmVu
IGNvbG9yLgotICAgIHZvaWQgZHJhd1RleHRGaWVsZChib29sIGRyYXdFZGdlcywgYm9vbCBmaWxs
Q29udGVudEFyZWEsIFNrQ29sb3IgY29sb3IpOworICAgIHZvaWQgZHJhd1RleHRGaWVsZChib29s
IGRyYXdFZGdlcywgYm9vbCBmaWxsQ29udGVudEFyZWEsIFNrQ29sb3IpOwogCiAgICAgLy8gVXNl
IHRoaXMgZm9yIGRyYXdpbmcgUHJvZ3Jlc3NCYXIgY29udHJvbHMgaW5zdGVhZCwgc2luY2Ugd2UK
ICAgICAvLyBuZWVkIHRvIGtub3cgdGhlIHJlY3QgdG8gZmlsbCBpbnNpZGUgdGhlIGJhci4KQEAg
LTE0MSwyNiArMTQxLDI2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgLy8gRHJhd3MgYSBib3gg
b2Ygc2l6ZSBzcGVjaWZpZWQgYnkgaXJlY3QsIGZpbGxlZCB3aXRoIHRoZSBnaXZlbiBjb2xvci4K
ICAgICAvLyBUaGUgYm94IHdpbGwgaGF2ZSBhIGJvcmRlciBkcmF3biBpbiB0aGUgZGVmYXVsdCBl
ZGdlIGNvbG9yLgotICAgIHZvaWQgYm94KGNvbnN0IFNrSVJlY3QmIGlyZWN0LCBTa0NvbG9yIGNv
bG9yKTsKKyAgICB2b2lkIGJveChjb25zdCBTa0lSZWN0JiBpcmVjdCwgU2tDb2xvcik7CiAKIAog
ICAgIC8vIERyYXdzIGEgdHJpYW5nbGUgb2Ygc2l6ZSBzcGVjaWZpZWQgYnkgdGhlIHRocmVlIHBh
aXJzIG9mIGNvb3JkaW5hdGVzLAogICAgIC8vIGZpbGxlZCB3aXRoIHRoZSBnaXZlbiBjb2xvci4g
VGhlIGJveCB3aWxsIGhhdmUgYW4gZWRnZSBkcmF3biBpbiB0aGUKICAgICAvLyBkZWZhdWx0IGVk
Z2UgY29sb3IuCi0gICAgdm9pZCB0cmlhbmdsZShpbnQgeDAsIGludCB5MCwgaW50IHgxLCBpbnQg
eTEsIGludCB4MiwgaW50IHkyLCBTa0NvbG9yIGNvbG9yKTsKKyAgICB2b2lkIHRyaWFuZ2xlKGlu
dCB4MCwgaW50IHkwLCBpbnQgeDEsIGludCB5MSwgaW50IHgyLCBpbnQgeTIsIFNrQ29sb3IpOwog
CiAgICAgLy8gRHJhd3MgYSByZWN0YW5nbGUgdGhlIHNpemUgb2YgdGhlIGNvbnRyb2wgd2l0aCBy
b3VuZGVkIGNvcm5lcnMsIGZpbGxlZAogICAgIC8vIHdpdGggdGhlIHNwZWNpZmllZCBjb2xvciAo
YW5kIHdpdGggYSBib3JkZXIgaW4gdGhlIGRlZmF1bHQgZWRnZSBjb2xvcikuCi0gICAgdm9pZCBy
b3VuZFJlY3QoU2tDb2xvciBjb2xvcik7CisgICAgdm9pZCByb3VuZFJlY3QoU2tDb2xvcik7CiAK
ICAgICAvLyBEcmF3cyBhbiBvdmFsIHRoZSBzaXplIG9mIHRoZSBjb250cm9sLCBmaWxsZWQgd2l0
aCB0aGUgc3BlY2lmaWVkIGNvbG9yCiAgICAgLy8gYW5kIHdpdGggYSBib3JkZXIgaW4gdGhlIGRl
ZmF1bHQgZWRnZSBjb2xvci4KLSAgICB2b2lkIG92YWwoU2tDb2xvciBjb2xvcik7CisgICAgdm9p
ZCBvdmFsKFNrQ29sb3IpOwogCiAgICAgLy8gRHJhd3MgYSBjaXJjbGUgY2VudGVyZWQgaW4gdGhl
IGNvbnRyb2wgd2l0aCB0aGUgc3BlY2lmaWVkIHJhZGl1cywKICAgICAvLyBmaWxsZWQgd2l0aCB0
aGUgc3BlY2lmaWVkIGNvbG9yLCBhbmQgd2l0aCBhIGJvcmRlciBkcmF3IGluIHRoZQogICAgIC8v
IGRlZmF1bHQgZWRnZSBjb2xvci4KLSAgICB2b2lkIGNpcmNsZShTa1NjYWxhciByYWRpdXMsIFNr
Q29sb3IgY29sb3IpOworICAgIHZvaWQgY2lyY2xlKFNrU2NhbGFyIHJhZGl1cywgU2tDb2xvcik7
CiAKICAgICAvLyBEcmF3cyBhIGJveCB0aGUgc2l6ZSBvZiB0aGUgY29udHJvbCwgZmlsbGVkIHdp
dGggdGhlIG91dGVyQ29sb3IgYW5kCiAgICAgLy8gd2l0aCBhIGJvcmRlciBpbiB0aGUgZGVmYXVs
dCBlZGdlIGNvbG9yLCBhbmQgdGhlbiBkcmF3cyBhbm90aGVyIGJveApAQCAtMTc0LDcgKzE3NCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICBTa0NvbG9yIGlubmVyQ29sb3IpOwog
CiAgICAgLy8gRHJhd3MgYSBsaW5lIGJldHdlZW4gdGhlIHR3byBwb2ludHMgaW4gdGhlIGdpdmVu
IGNvbG9yLgotICAgIHZvaWQgbGluZShpbnQgeDAsIGludCB5MCwgaW50IHgxLCBpbnQgeTEsIFNr
Q29sb3IgY29sb3IpOworICAgIHZvaWQgbGluZShpbnQgeDAsIGludCB5MCwgaW50IHgxLCBpbnQg
eTEsIFNrQ29sb3IpOwogCiAgICAgLy8gRHJhd3MgYSBkaXN0aW5jdGl2ZSBtYXJrIG9uIHRoZSBj
b250cm9sIGZvciBlYWNoIHN0YXRlLCBzbyB0aGF0IHRoZQogICAgIC8vIHN0YXRlIG9mIHRoZSBj
b250cm9sIGNhbiBiZSBkZXRlcm1pbmVkIHdpdGhvdXQgbmVlZGluZyB0byBrbm93IHdoaWNoCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUVuZ2luZURS
VE1hYy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVGhlbWVFbmdpbmVEUlRN
YWMuaAppbmRleCA1YjU0Mzk0NWRjMGM0OWQ2ZTZhZGIxZGUxODA1ZmQxNTZhYzNmZjViLi44Nzdj
MDgxMzJkYmQ4YWY0ZDNlYzM3MDkzZGVhZDlmOWRhMTJiYWEzIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUVuZ2luZURSVE1hYy5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlRoZW1lRW5naW5lRFJUTWFjLmgKQEAgLTQwLDYg
KzQwLDcgQEAgcHVibGljOgogICAgICAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTaXplLAog
ICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlJlY3QmLAogICAgICAgICBjb25zdCBXZWJLaXQ6Oldl
YlRoZW1lRW5naW5lOjpTY3JvbGxiYXJJbmZvJik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50SElUaGVtZVNjcm9sbGJhclRodW1iKAogICAgICAgICBXZWJLaXQ6OldlYkNhbnZh
cyosCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUVu
Z2luZURSVFdpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJUaGVtZUVu
Z2luZURSVFdpbi5jcHAKaW5kZXggMTAzYjI5NThjNjg5ODlkMWI1NzVmOTYxNjJjYzA5OGMwMmEz
MDI5MC4uMWY4YTQyMmQ3OTMwZGNmNzU1YWFkNmMyM2I5ZjJmZTE5NTE5N2M1NSAxMDA3NTUKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVGhlbWVFbmdpbmVEUlRXaW4uY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlRoZW1lRW5naW5lRFJUV2lu
LmNwcApAQCAtMjY3LDkgKzI2Nyw4IEBAIHZvaWQgV2ViVGhlbWVFbmdpbmVEUlRXaW46OnBhaW50
QnV0dG9uKFdlYkNhbnZhcyogY2FudmFzLAogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgIH0gZWxzZSB7CisgICAgfSBl
bHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KIAogICAgIGRyYXdDb250
cm9sKGNhbnZhcywgcmVjdCwgY3R5cGUsIGNzdGF0ZSk7CiB9CkBAIC0zMTEsOSArMzEwLDggQEAg
dm9pZCBXZWJUaGVtZUVuZ2luZURSVFdpbjo6cGFpbnRNZW51TGlzdChXZWJDYW52YXMqIGNhbnZh
cywKICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgIH0gZWxzZSB7CisgICAgfSBlbHNlCiAgICAgICAgIENSQVNIKCk7Ci0gICAgfQogCiAgICAg
ZHJhd0NvbnRyb2woY2FudmFzLCByZWN0LCBjdHlwZSwgY3N0YXRlKTsKIH0KQEAgLTczNiw5ICs3
MzQsOCBAQCB2b2lkIFdlYlRoZW1lRW5naW5lRFJUV2luOjpwYWludFRyYWNrYmFyKFdlYkNhbnZh
cyogY2FudmFzLAogICAgICAgICBBU1NFUlQocGFydCA9PSBUVVNfTk9STUFMKTsKICAgICAgICAg
QVNTRVJUKGNsYXNzaWNTdGF0ZSA9PSBkZmNzTm9ybWFsKTsKICAgICAgICAgY3N0YXRlID0gV2Vi
VGhlbWVDb250cm9sRFJUV2luOjpOb3JtYWxTdGF0ZTsKLSAgICB9IGVsc2UgeworICAgIH0gZWxz
ZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9CiAKICAgICBkcmF3Q29udHJv
bChjYW52YXMsIHJlY3QsIGN0eXBlLCBjc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVGhlbWVFbmdpbmVEUlRXaW4uaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlRoZW1lRW5naW5lRFJUV2luLmgKaW5kZXggOWIxZTgxN2Uy
NTliZTQ0YTBkODcwMjRjMzcxZWQ5ZmM2ODIzOTYxYi4uNjlhNDY2ODU5YTQxYjRiYjJjZDc1OTVi
MmMwYzFhMjdlMWExY2I5MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVGhlbWVFbmdpbmVEUlRXaW4uaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJUaGVtZUVuZ2luZURSVFdpbi5oCkBAIC01Myw3ICs1Myw3IEBACiBjbGFzcyBXZWJU
aGVtZUVuZ2luZURSVFdpbiA6IHB1YmxpYyBXZWJLaXQ6OldlYlRoZW1lRW5naW5lIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXZWJUaGVtZUVuZ2luZURSVFdpbik7CiBwdWJsaWM6Ci0gICAg
V2ViVGhlbWVFbmdpbmVEUlRXaW4oKSB7fQorICAgIFdlYlRoZW1lRW5naW5lRFJUV2luKCkgeyB9
CiAKICAgICAvLyBXZWJUaGVtZUVuZ2luZSBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dEJ1dHRvbigKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cAppbmRleCBjMDFjZGQ2OTg1NWIwZWVlODA5NmJjODkyYTc0MzhjMGY2OGUzNTRjLi43ZWY0N2Iz
Njk1ODQzOGJiMGIwOGE4ODcxN2Q3ZjY0NTk4N2M5ZmQyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGlj
IHN0cmluZyBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25zdCBzdHJpbmcmIHVy
bCkKICAgICByZXR1cm4gdXJsLnN1YnN0cihwb3MgKyAxKTsKIH0KIAotLy8gQWRkcyBhIGZpbGUg
Y2FsbGVkICJEUlRGYWtlRmlsZSIgdG8gfGRhdGFfb2JqZWN0fCAoQ0ZfSERST1ApLiAgVXNlIHRv
IGZha2UKKy8vIEFkZHMgYSBmaWxlIGNhbGxlZCAiRFJURmFrZUZpbGUiIHRvIGRyYWdEYXRhIChD
Rl9IRFJPUCkuIFVzZSB0byBmYWtlCiAvLyBkcmFnZ2luZyBhIGZpbGUuCiBzdGF0aWMgdm9pZCBh
ZGREUlRGYWtlRmlsZVRvRGF0YU9iamVjdChXZWJEcmFnRGF0YSogZHJhZ0RhdGEpCiB7CkBAIC0y
NzcsNyArMjc3LDcgQEAgdm9pZCBXZWJWaWV3SG9zdDo6ZGlkU3RvcExvYWRpbmcoKQogfQogCiAv
LyBUaGUgb3V0cHV0IGZyb20gdGhlc2UgbWV0aG9kcyBpbiBsYXlvdXQgdGVzdCBtb2RlIHNob3Vs
ZCBtYXRjaCB0aGF0Ci0vLyBleHBlY3RlZCBieSB0aGUgbGF5b3V0IHRlc3RzLiAgU2VlIEVkaXRp
bmdEZWxlZ2F0ZS5tIGluIER1bXBSZW5kZXJUcmVlLgorLy8gZXhwZWN0ZWQgYnkgdGhlIGxheW91
dCB0ZXN0cy4gU2VlIEVkaXRpbmdEZWxlZ2F0ZS5tIGluIER1bXBSZW5kZXJUcmVlLgogCiBib29s
IFdlYlZpZXdIb3N0OjpzaG91bGRCZWdpbkVkaXRpbmcoY29uc3QgV2ViUmFuZ2UmIHJhbmdlKQog
ewpAQCAtMTI4Myw3ICsxMjgzLDcgQEAgYm9vbCBXZWJWaWV3SG9zdDo6bmF2aWdhdGUoY29uc3Qg
VGVzdE5hdmlnYXRpb25FbnRyeSYgZW50cnksIGJvb2wgcmVsb2FkKQogICAgIC8vIGJhY2svZm9y
d2FyZCBuYXZpZ2F0aW9ucyBtYWludGFpbiB0aGUgdGFyZ2V0IGZyYW1lPwogCiAgICAgLy8gQSBu
YXZpZ2F0aW9uIHJlc3VsdGluZyBmcm9tIGxvYWRpbmcgYSBqYXZhc2NyaXB0IFVSTCBzaG91bGQg
bm90IGJlCi0gICAgLy8gdHJlYXRlZCBhcyBhIGJyb3dzZXIgaW5pdGlhdGVkIGV2ZW50LiAgSW5z
dGVhZCwgd2Ugd2FudCBpdCB0byBsb29rIGFzIGlmCisgICAgLy8gdHJlYXRlZCBhcyBhIGJyb3dz
ZXIgaW5pdGlhdGVkIGV2ZW50LiBJbnN0ZWFkLCB3ZSB3YW50IGl0IHRvIGxvb2sgYXMgaWYKICAg
ICAvLyB0aGUgcGFnZSBpbml0aWF0ZWQgYW55IGxvYWQgcmVzdWx0aW5nIGZyb20gSlMgZXhlY3V0
aW9uLgogICAgIGlmICghR1VSTChlbnRyeS5VUkwoKSkuU2NoZW1lSXMoImphdmFzY3JpcHQiKSkK
ICAgICAgICAgc2V0UGVuZGluZ0V4dHJhRGF0YShhZG9wdFB0cihuZXcgVGVzdFNoZWxsRXh0cmFE
YXRhKGVudHJ5LnBhZ2VJRCgpKSkpOwpAQCAtMTM5MCw3ICsxMzkwLDcgQEAgdm9pZCBXZWJWaWV3
SG9zdDo6dXBkYXRlVVJMKFdlYkZyYW1lKiBmcmFtZSkKIHZvaWQgV2ViVmlld0hvc3Q6OnVwZGF0
ZVNlc3Npb25IaXN0b3J5KFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICAvLyBJZiB3ZSBoYXZlIGEg
dmFsaWQgcGFnZSBJRCBhdCB0aGlzIHBvaW50LCB0aGVuIGl0IGNvcnJlc3BvbmRzIHRvIHRoZSBw
YWdlCi0gICAgLy8gd2UgYXJlIG5hdmlnYXRpbmcgYXdheSBmcm9tLiAgT3RoZXJ3aXNlLCB0aGlz
IGlzIHRoZSBmaXJzdCBuYXZpZ2F0aW9uLCBzbworICAgIC8vIHdlIGFyZSBuYXZpZ2F0aW5nIGF3
YXkgZnJvbS4gT3RoZXJ3aXNlLCB0aGlzIGlzIHRoZSBmaXJzdCBuYXZpZ2F0aW9uLCBzbwogICAg
IC8vIHRoZXJlIGlzIG5vIHBhc3Qgc2Vzc2lvbiBoaXN0b3J5IHRvIHJlY29yZC4KICAgICBpZiAo
bV9wYWdlSWQgPT0gLTEpCiAgICAgICAgIHJldHVybjsKQEAgLTE0OTIsNyArMTQ5Miw3IEBAIHZv
aWQgV2ViVmlld0hvc3Q6OnBhaW50SW52YWxpZGF0ZWRSZWdpb24oKQogICAgIFdlYlNpemUgd2lk
Z2V0U2l6ZSA9IHdlYldpZGdldCgpLT5zaXplKCk7CiAgICAgV2ViUmVjdCBjbGllbnRSZWN0KDAs
IDAsIHdpZGdldFNpemUud2lkdGgsIHdpZGdldFNpemUuaGVpZ2h0KTsKIAotICAgIC8vIFBhaW50
IHRoZSBjYW52YXMgaWYgbmVjZXNzYXJ5LiAgQWxsb3cgcGFpbnRpbmcgdG8gZ2VuZXJhdGUgZXh0
cmEgcmVjdHMKKyAgICAvLyBQYWludCB0aGUgY2FudmFzIGlmIG5lY2Vzc2FyeS4gQWxsb3cgcGFp
bnRpbmcgdG8gZ2VuZXJhdGUgZXh0cmEgcmVjdHMKICAgICAvLyBmb3IgdGhlIGZpcnN0IHR3byBj
YWxscy4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzb21lIFdlYkNvcmUgcmVuZGVyaW5nCiAg
ICAgLy8gb2JqZWN0cyB1cGRhdGUgdGhlaXIgbGF5b3V0IG9ubHkgd2hlbiBwYWludGVkLgogICAg
IC8vIFN0b3JlIHRoZSB0b3RhbCBhcmVhIHBhaW50ZWQgaW4gdG90YWxfcGFpbnQuIFRoZW4gdGVs
bCB0aGUgZ2RrIHdpbmRvdwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmgKaW5kZXggNjdhYmI1YjZkMjZmNzBkY2U3YzE1ZGQyZjNkMGE4N2U4MjMzODg5ZC4uOTJl
N2Q4NjE2YzBjNzAxMzM5ODYyYTEzMjZiYjBkMTk1ODY5Yjc2ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC02Niw3ICs2Niw3IEBAIHN0cnVjdCBX
ZWJXaW5kb3dGZWF0dXJlczsKIAogY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpX
ZWJTcGVsbENoZWNrQ2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMg
V2ViS2l0OjpXZWJGcmFtZUNsaWVudCwgcHVibGljIE5hdmlnYXRpb25Ib3N0IHsKICBwdWJsaWM6
Ci0gICAgV2ViVmlld0hvc3QoVGVzdFNoZWxsKiBzaGVsbCk7CisgICAgV2ViVmlld0hvc3QoVGVz
dFNoZWxsKik7CiAgICAgfldlYlZpZXdIb3N0KCk7CiAgICAgdm9pZCBzZXRXZWJXaWRnZXQoV2Vi
S2l0OjpXZWJXaWRnZXQqKTsKICAgICBXZWJLaXQ6OldlYlZpZXcqIHdlYlZpZXcoKSBjb25zdDsK
QEAgLTI1Myw3ICsyNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QWRkcmVzc0JhclVSTChj
b25zdCBXZWJLaXQ6OldlYlVSTCYpOwogCiAgICAgLy8gSW4gdGhlIE1hYyBjb2RlLCB0aGlzIGlz
IGNhbGxlZCB0byB0cmlnZ2VyIHRoZSBlbmQgb2YgYSB0ZXN0IGFmdGVyIHRoZQotICAgIC8vIHBh
Z2UgaGFzIGZpbmlzaGVkIGxvYWRpbmcuICBGcm9tIGhlcmUsIHdlIGNhbiBnZW5lcmF0ZSB0aGUg
ZHVtcCBmb3IgdGhlCisgICAgLy8gcGFnZSBoYXMgZmluaXNoZWQgbG9hZGluZy4gRnJvbSBoZXJl
LCB3ZSBjYW4gZ2VuZXJhdGUgdGhlIGR1bXAgZm9yIHRoZQogICAgIC8vIHRlc3QuCiAgICAgdm9p
ZCBsb2NhdGlvbkNoYW5nZURvbmUoV2ViS2l0OjpXZWJGcmFtZSopOwogCkBAIC0yNzYsOCArMjc2
LDggQEAgcHJpdmF0ZToKICAgICAvLyBkb24ndCBhY3R1YWxseSB3YW50IHRvIG9wZW4gdGhlIG1h
aWwgcHJvZ3JhbS4KICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogCi0gICAgLy8g
VG9nZ2xlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIHBvbGljeSBkZWxlZ2F0ZS4gIElmIHRydWUsIHRo
ZW4gbmF2aWdhdGlvbnMKLSAgICAvLyB3aWxsIGJlIGFsbG93ZWQuICBPdGhlcndpc2UsIHRoZXkg
d2lsbCBiZSBpZ25vcmVkIChkcm9wcGVkKS4KKyAgICAvLyBUb2dnbGVzIHRoZSBiZWhhdmlvciBv
ZiB0aGUgcG9saWN5IGRlbGVnYXRlLiBJZiB0cnVlLCB0aGVuIG5hdmlnYXRpb25zCisgICAgLy8g
d2lsbCBiZSBhbGxvd2VkLiBPdGhlcndpc2UsIHRoZXkgd2lsbCBiZSBpZ25vcmVkIChkcm9wcGVk
KS4KICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmU7CiAKICAgICAvLyBJZiB0
cnVlLCB0aGUgcG9saWN5IGRlbGVnYXRlIHdpbGwgc2lnbmFsIGxheW91dCB0ZXN0IGNvbXBsZXRp
b24uCkBAIC0yOTIsNyArMjkyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBUaGlzIGlzIG5vbi0wIElG
RiBhIGxvYWQgaXMgaW4gcHJvZ3Jlc3MuCiAgICAgV2ViS2l0OjpXZWJGcmFtZSogbV90b3BMb2Fk
aW5nRnJhbWU7CiAKLSAgICAvLyBGb3IgdHJhY2tpbmcgc2Vzc2lvbiBoaXN0b3J5LiAgU2VlIFJl
bmRlclZpZXcuCisgICAgLy8gRm9yIHRyYWNraW5nIHNlc3Npb24gaGlzdG9yeS4gU2VlIFJlbmRl
clZpZXcuCiAgICAgaW50IG1fcGFnZUlkOwogICAgIGludCBtX2xhc3RQYWdlSWRVcGRhdGVkOwog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>