<?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>93592</bug_id>
          
          <creation_ts>2012-08-09 01:21:04 -0700</creation_ts>
          <short_desc>[V8] Rename V8BindingPerIsolateData to V8PerIsolateData</short_desc>
          <delta_ts>2012-08-09 15:52:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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>93095</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691335</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-09 01:21:04 -0700</bug_when>
    <thetext>Per discussion in bug 93333.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691338</commentid>
    <comment_count>1</comment_count>
      <attachid>157419</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-09 01:25:01 -0700</bug_when>
    <thetext>Created attachment 157419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691948</commentid>
    <comment_count>2</comment_count>
      <attachid>157419</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 15:52:36 -0700</bug_when>
    <thetext>Comment on attachment 157419
Patch

Clearing flags on attachment: 157419

Committed r125216: &lt;http://trac.webkit.org/changeset/125216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691949</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 15:52:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157419</attachid>
            <date>2012-08-09 01:25:01 -0700</date>
            <delta_ts>2012-08-09 15:52:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93592-20120809172433.patch</filename>
            <type>text/plain</type>
            <size>69272</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2UwYjg5NmY0MjRlNGY3
OGFkOTVhNDA1ZTFiMmVhZjY3ZGM3ZGJlNy4uOTAyMWJiNzJhZTJlNWU4ZGUxNTJkNDM3NTFhOWM5
YTJhMjc3YjZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NyBAQAorMjAxMi0wOC0wOSAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBSZW5hbWUg
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGEgdG8gVjhQZXJJc29sYXRlRGF0YQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgYSBiZXR0ZXIgbmFtZS4gU2Vl
IGRpc2N1c3Npb24gaW4gYnVnIDkzMzMzLgorCisgICAgICAgIE5vIHRlc3RzLiBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06Cisg
ICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhGbG9h
dDY0QXJyYXk6OkdldFJhd1RlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RmxvYXQ2NEFy
cmF5OjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RBY3RpdmVE
T01PYmplY3Q6OkdldFJhd1RlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEFjdGl2
ZURPTU9iamVjdDo6R2V0VGVtcGxhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRl
c3RDdXN0b21OYW1lZEdldHRlcjo6R2V0UmF3VGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
VjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OkdldFRlbXBsYXRlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpHZXRSYXdUZW1wbGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4VGVzdEV2ZW50VGFyZ2V0OjpHZXRSYXdUZW1wbGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOFRlc3RFdmVudFRhcmdldDo6R2V0VGVtcGxhdGUpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VjhUZXN0RXhjZXB0aW9uOjpHZXRSYXdUZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWOFRlc3RFeGNlcHRpb246OkdldFRlbXBsYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVz
dEludGVyZmFjZTo6R2V0UmF3VGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0SW50
ZXJmYWNlOjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0UmF3VGVtcGxhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0VGVtcGxhdGUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OkdldFJhd1RlbXBsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OkdldFRlbXBsYXRl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFRlc3ROb2RlOjpHZXRSYXdUZW1wbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3ROb2RlOjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RPYmo6
OkdldFJhd1RlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE9iajo6R2V0VGVtcGxh
dGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpHZXRSYXdUZW1wbGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkdldFRlbXBsYXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TURhdGE6OmdldEN1cnJlbnRTdG9yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvRE9NRGF0YVN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTURhdGFTdG9yZTo6YWxsU3RvcmVzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Omlzb2xhdGVHQ0V2ZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmls
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvZmlsZXI6OnZpc2l0RXh0ZXJuYWxT
dHJpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2ZpbGVyOjpjb2xsZWN0QmluZGlu
Z01lbW9yeUluZm8pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1N0YXRpY0RPTURhdGFTdG9yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNET01EYXRhU3RvcmU6OlN0YXRpY0RPTURhdGFT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNET01EYXRhU3RvcmU6On5TdGF0aWNET01E
YXRhU3RvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjp2aXNpdEV4dGVybmFsU3RyaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpnZXRUb1N0cmluZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VG9T
dHJpbmdUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDb25zdHJ1Y3Rvck1vZGU6OkNvbnN0cnVjdG9yTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb25zdHJ1Y3Rvck1vZGU6On5Db25zdHJ1Y3Rvck1vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29uc3RydWN0b3JNb2RlOjpjdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnY4
RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6djhJbnRlZ2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OnY4VW5zaWduZWRJbnRlZ2VyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERP
TU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01EYXRhU3RvcmVIYW5kbGU6OkRPTURhdGFT
dG9yZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpET01EYXRhU3RvcmVIYW5kbGU6On5ET01E
YXRhU3RvcmVIYW5kbGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dTaGVsbDo6aW5pdENvbnRleHRJZk5l
ZWRlZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3VycmVudEdsb2JhbEhhbmRsZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpW
OEdDQ29udHJvbGxlcjo6Z2NQcm9sb2d1ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRk
ZW5Qcm9wZXJ0eU5hbWUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOExhenlF
dmVudExpc3RlbmVyOjpwcmVwYXJlTGlzdGVuZXJPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjpWOFBlcklzb2xhdGVEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6On5WOFBlcklzb2xhdGVEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjplbnN1cmVJbml0aWFsaXplZCk6CisgICAgICAgIChX
ZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjpkaXNwb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
UGVySXNvbGF0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9WOFBlcklzb2xhdGVEYXRhLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEJpbmRpbmdQZXJJc29sYXRlRGF0YS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChWOFBlcklzb2xhdGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURh
dGE6OmN1cnJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6cmF3VGVt
cGxhdGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6dGVtcGxhdGVN
YXApOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6dG9TdHJpbmdOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OnRvU3RyaW5nVGVtcGxhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6bGF6eUV2ZW50TGlzdGVuZXJUb1N0
cmluZ1RlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OnN0cmlu
Z0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OmludGVnZXJDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjphbGxTdG9yZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6aGlkZGVuUHJvcGVydHlOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OmF1eGlsaWFyeUNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6cmVnaXN0ZXJET01EYXRhU3RvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6dW5yZWdpc3RlckRPTURhdGFTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjpkb21EYXRhU3RvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6c2V0RE9NRGF0YVN0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OnJlY3Vyc2lvbkxldmVsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OmluY3JlbWVudFJlY3Vyc2lvbkxldmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OmRlY3JlbWVudFJlY3Vyc2lvbkxl
dmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6Omdsb2JhbEhhbmRsZU1h
cCk6CisgICAgICAgIChXZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjppbnRlcm5hbFNjcmlwdFJl
Y3Vyc2lvbkxldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OmluY3Jl
bWVudEludGVybmFsU2NyaXB0UmVjdXJzaW9uTGV2ZWwpOgorICAgICAgICAoV2ViQ29yZTo6VjhQ
ZXJJc29sYXRlRGF0YTo6ZGVjcmVtZW50SW50ZXJuYWxTY3JpcHRSZWN1cnNpb25MZXZlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjpnY0V2ZW50RGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpWOFBlcklzb2xhdGVEYXRhOjpzZXRTaG91bGRDb2xsZWN0R2FyYmFnZVNvb24p
OgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6Y2xlYXJTaG91bGRDb2xsZWN0
R2FyYmFnZVNvb24pOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6c2hvdWxk
Q29sbGVjdEdhcmJhZ2VTb29uKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmhpbnRGb3JHQ0lmTmVjZXNzYXJ5KToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpW
OFJlY3Vyc2lvblNjb3BlOjpWOFJlY3Vyc2lvblNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
UmVjdXJzaW9uU2NvcGU6On5WOFJlY3Vyc2lvblNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
UmVjdXJzaW9uU2NvcGU6OnJlY3Vyc2lvbkxldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UmVj
dXJzaW9uU2NvcGU6OnByb3Blcmx5VXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpWOFJlY3Vyc2lv
blNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbjo6TWljcm90YXNrU3VwcHJlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6VjhSZWN1cnNpb25TY29wZTo6TWljcm90YXNrU3VwcHJlc3Npb246On5N
aWNyb3Rhc2tTdXBwcmVzc2lvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBdXhpbGlhcnlDb250ZXh0OjphdXhpbGlhcnlDb250
ZXh0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFZhbHVlQ2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y2FjaGVkU3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRJc29sYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNj
cmlwdENvbnRyb2xsZXI6OldvcmtlclNjcmlwdENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRDYWxsYmFj
ayk6CisKIDIwMTItMDgtMDkgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgogCiAgICAg
ICAgIE1pY3JvZGF0YTogSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIGRvZXMgbm90IGNvbnRhaW4g
YWxsIHByb3BlcnRpZXMgd2hlbiBpdGVtIGlzIG5vdCBhdHRhY2hlZCB0byB0aGUgRE9NIHRyZWUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGUwMDczOWVlYjQ2OWFhYzhiN2MxNGU2YjY0
MWIwYzE1NDFmYWYxNzkuLjY3YjY0NzNjZTViYzI1MThmZGJlMDdmY2ExYzBjZjBkYTQxNzllYTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDgtMDkg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gUmVu
YW1lIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhIHRvIFY4UGVySXNvbGF0ZURhdGEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTkyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIGEgYmV0dGVyIG5hbWUu
IFNlZSBkaXNjdXNzaW9uIGluIGJ1ZyA5MzMzMy4KKworICAgICAgICBObyB0ZXN0cy4gTm8gY2hh
bmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogc3JjL1dlYktpdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmluaXRpYWxpemUpOgorCiAyMDEyLTA4LTA4ICBTaGFuZSBTdGVwaGVucyAgPHNoYW5l
c3RlcGhlbnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBDb21waWxlIGZsYWcgZm9yIENTUyBIaWVy
YXJjaGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCA4ZGFlOTNhY2I0YjY4NDVmZmE0ZjFmNDRjN2VkM2Ex
ZjZjZWRmZmM3Li43NjgwZWRjZDQzMGZmNGQ1YmFiOGU5YmY5NTI3MzkzZmEyMDY1ZmFhIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9V
c2VWOC5jbWFrZQpAQCAtNDcsNyArNDcsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
ICAgICBiaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKICAgICBiaW5kaW5n
cy92OC9WOEJpbmRpbmcuY3BwCiAgICAgYmluZGluZ3MvdjgvVjhCaW5kaW5nSGVscGVycy5jcHAK
LSAgICBiaW5kaW5ncy92OC9WOEJpbmRpbmdQZXJJc29sYXRlRGF0YS5jcHAKKyAgICBiaW5kaW5n
cy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcAogICAgIGJpbmRpbmdzL3Y4L1Y4Q29uZmlndXJlRE9N
QXR0cmlidXRlc0FuZE1ldGhvZHMuY3BwLAogICAgIGJpbmRpbmdzL3Y4L1Y4Q29sbGVjdGlvbi5j
cHAKICAgICBiaW5kaW5ncy92OC9WOERPTU1hcC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhNjJi
YThiNjVhYTdiNjU3ZGY5MDcyZDY3YjYwOWNjMWQ0ZGUwNWIwLi5lYTU0YzE5MTMzYTM5MThiNDAw
YTFhMTJhZWRhMzIwOTVmOWM2ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMjQ3LDggKzIyNDcs
OCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4QmluZGluZ01hY3Jvcy5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9WOEJpbmRpbmdQZXJDb250ZXh0RGF0YS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L1Y4QmluZGluZ1BlckNvbnRleHREYXRhLmgnLAotICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4QmluZGluZ1Blcklzb2xhdGVEYXRhLmNwcCcsCi0gICAgICAgICAg
ICAnYmluZGluZ3MvdjgvVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuaCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvdjgvVjhQZXJJc29sYXRlRGF0YS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L1Y4UGVySXNvbGF0ZURhdGEuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhDb25m
aWd1cmVET01BdHRyaWJ1dGVzQW5kTWV0aG9kcy5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L1Y4Q29uZmlndXJlRE9NQXR0cmlidXRlc0FuZE1ldGhvZHMuaCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvVjhDb2xsZWN0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDllZGMwYWY4MjdmZjA1YjFk
NTVkNDc5MjYyZjcxNTBiN2I5NjFlMjcuLjA1M2MwZDViYzE1MWQ5NDJlOTI3MjdhMGI0ZDA5ZWRk
ODIzNGMxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCkBAIC0yOTcyLDggKzI5NzIsOCBAQCBFTkQKIAogdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICR7Y2xhc3NOYW1lfTo6R2V0UmF3VGVtcGxhdGUoKQog
ewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0
ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVN
YXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7
CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
KTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0g
ZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAgICBpZiAocmVzdWx0ICE9IGRh
dGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQtPnNlY29u
ZDsKIApAQCAtMjk4NSw4ICsyOTg1LDggQEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+ICR7Y2xhc3NOYW1lfTo6R2V0UmF3VGVtcGxhdGUoKQogCiB2ODo6UGVyc2lzdGVudDx2
ODo6RnVuY3Rpb25UZW1wbGF0ZT4gJHtjbGFzc05hbWV9OjpHZXRUZW1wbGF0ZSgpCiB7Ci0gICAg
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6
Y3VycmVudCgpOwotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRl
cmF0b3IgcmVzdWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKKyAgICBWOFBl
cklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4
UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT50ZW1w
bGF0ZU1hcCgpLmZpbmQoJmluZm8pOwogICAgIGlmIChyZXN1bHQgIT0gZGF0YS0+dGVtcGxhdGVN
YXAoKS5lbmQoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC0+c2Vjb25kOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFy
cmF5LmNwcAppbmRleCA4MmNlN2NhY2E4YWE2MTYyNDAzYzJmMzJmZDMwMmZmNDdmZmFjYzk0Li5j
ZTMwNTI1NDEyNWNlZTgwYTc5MGVlYjYyMzIzYzM1ZDdlZWI5MGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJh
eS5jcHAKQEAgLTExNiw4ICsxMTYsOCBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4RmxvYXQ2NEFycmF5VGVtcGxhdGUodjg6OgogCiB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhGbG9hdDY0QXJyYXk6OkdldFJhd1Rl
bXBsYXRlKCkKIHsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6
OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT5yYXdUZW1wbGF0ZU1hcCgpLmZp
bmQoJmluZm8pOworICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xhdGVEYXRh
OjpjdXJyZW50KCk7CisgICAgVjhQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9y
IHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CiAgICAgaWYgKHJl
c3VsdCAhPSBkYXRhLT5yYXdUZW1wbGF0ZU1hcCgpLmVuZCgpKQogICAgICAgICByZXR1cm4gcmVz
dWx0LT5zZWNvbmQ7CiAKQEAgLTEyOSw4ICsxMjksOCBAQCB2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4gVjhGbG9hdDY0QXJyYXk6OkdldFJhd1RlbXBsYXRlKCkKIAogdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4RmxvYXQ2NEFycmF5OjpHZXRUZW1wbGF0
ZSgpCiB7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJ
c29sYXRlRGF0YTo6Y3VycmVudCgpOwotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpUZW1w
bGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZpbmZv
KTsKKyAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVu
dCgpOworICAgIFY4UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQg
PSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8pOwogICAgIGlmIChyZXN1bHQgIT0gZGF0
YS0+dGVtcGxhdGVNYXAoKS5lbmQoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC0+c2Vjb25kOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDllYThlMGNlODMwODQxYmZj
MjExZDU5MmFjYjBjYjA4MjQzZTRhMWUuLjJjNmQ5ZjU1ZjRhYzk0MTk3NDgzZDFmM2ViZjlmYzdk
ZTA4NWNjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0xMjgsOCAr
MTI4LDggQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25m
aWd1cmVWOFRlc3RBY3RpdmVET01PYmplY3RUZW1wbGEKIAogdjg6OlBlcnNpc3RlbnQ8djg6OkZ1
bmN0aW9uVGVtcGxhdGU+IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6R2V0UmF3VGVtcGxhdGUoKQog
ewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0
ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVN
YXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7
CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
KTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0g
ZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAgICBpZiAocmVzdWx0ICE9IGRh
dGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQtPnNlY29u
ZDsKIApAQCAtMTQxLDggKzE0MSw4IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBWOFRlc3RBY3RpdmVET01PYmplY3Q6OkdldFJhd1RlbXBsYXRlKCkKIAogdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6R2V0VGVt
cGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5n
UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6
VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnRlbXBsYXRlTWFwKCkuZmluZCgm
aW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1
cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVz
dWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAgICBpZiAocmVzdWx0ICE9
IGRhdGEtPnRlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQtPnNlY29u
ZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggNzczZWY1MjU5
MjY2NzAwYmNjYjhmZWU2YjllZDNiZGE5Zjk2YmEwMC4uYjk2NTk1ZDc4NWY4ZGI0MTY0MTU3ZTA1
MThkNTBiOTllZTkyNjRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
CkBAIC03OSw4ICs3OSw4IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gQ29uZmlndXJlVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJUZW1wCiAKIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6R2V0UmF3
VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5k
aW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0
YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCku
ZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURh
dGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0
b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAgICBpZiAo
cmVzdWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQtPnNlY29uZDsKIApAQCAtOTIsOCArOTIsOCBAQCB2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OkdldFJhd1RlbXBsYXRlKCkK
IAogdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdEN1c3RvbU5hbWVk
R2V0dGVyOjpHZXRUZW1wbGF0ZSgpCiB7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRh
dGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOwotICAgIFY4QmluZGluZ1Bl
cklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+dGVtcGxh
dGVNYXAoKS5maW5kKCZpbmZvKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJ
c29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFw
OjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8pOwogICAg
IGlmIChyZXN1bHQgIT0gZGF0YS0+dGVtcGxhdGVNYXAoKS5lbmQoKSkKICAgICAgICAgcmV0dXJu
IHJlc3VsdC0+c2Vjb25kOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggZDdhN2FhMTU0M2E3YjBhMGY5NjhhMGQxNDY0ZjljMTBjN2JhOWVlNi4uNTY1NDM2MmUzNDRm
ZGIyMzM2OGE5MTQ0OTY3NDJhYzljYjlmYWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcApAQCAtMTE2LDggKzExNiw4IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0RXZlbnRDb25zdHJ1Y3RvclRlbXBsCiAK
IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3RFdmVudENvbnN0cnVj
dG9yOjpHZXRSYXdUZW1wbGF0ZSgpCiB7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRh
dGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOwotICAgIFY4QmluZGluZ1Bl
cklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVt
cGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQ
ZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRl
TWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT5yYXdUZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8p
OwogICAgIGlmIChyZXN1bHQgIT0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5lbmQoKSkKICAgICAg
ICAgcmV0dXJuIHJlc3VsdC0+c2Vjb25kOwogCkBAIC0xMjksOCArMTI5LDggQEAgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OkdldFJh
d1RlbXBsYXRlKCkKIAogdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVz
dEV2ZW50Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlKCkKIHsKLSAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7Ci0gICAg
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBk
YXRhLT50ZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8pOworICAgIFY4UGVySXNvbGF0ZURhdGEqIGRh
dGEgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgVjhQZXJJc29sYXRlRGF0YTo6
VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnRlbXBsYXRlTWFwKCkuZmluZCgm
aW5mbyk7CiAgICAgaWYgKHJlc3VsdCAhPSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmVuZCgpKQogICAg
ICAgICByZXR1cm4gcmVzdWx0LT5zZWNvbmQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCmlu
ZGV4IDY5ZDAyNDI1ODJlOTdjZGZiNWZhMjc5NGFlYWYxNjhjMzYxZjA3NjUuLmIzOTViOTU0Y2Q1
Mzg1NTVhNzc2ZjhkNzFmYTVlNjU3YTNmMTgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNw
cApAQCAtMTQwLDggKzE0MCw4IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0RXZlbnRUYXJnZXRUZW1wbGF0ZSh2CiAKIHY4OjpQZXJz
aXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3RFdmVudFRhcmdldDo6R2V0UmF3VGVt
cGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5n
UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6
VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZmlu
ZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6
OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3Ig
cmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAgICBpZiAocmVz
dWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJldHVybiByZXN1
bHQtPnNlY29uZDsKIApAQCAtMTUzLDggKzE1Myw4IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPiBWOFRlc3RFdmVudFRhcmdldDo6R2V0UmF3VGVtcGxhdGUoKQogCiB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0RXZlbnRUYXJnZXQ6OkdldFRl
bXBsYXRlKCkKIHsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6
OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmZpbmQo
JmluZm8pOworICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xhdGVEYXRhOjpj
dXJyZW50KCk7CisgICAgVjhQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJl
c3VsdCA9IGRhdGEtPnRlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CiAgICAgaWYgKHJlc3VsdCAh
PSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmVuZCgpKQogICAgICAgICByZXR1cm4gcmVzdWx0LT5zZWNv
bmQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggNDE1NjcxNTliOGJmOWMxODViNzlkNWJj
NDgwNTU5ZWJiZDUwZDQ3ZC4uYzAyMTZlZTNhZmIwNmMxNzA0ZmUyNTdhODM4NGZhZTZlNWE2MGI1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTcwLDggKzcwLDggQEAgc3RhdGljIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RFeGNlcHRpb25U
ZW1wbGF0ZSh2ODoKIAogdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVz
dEV4Y2VwdGlvbjo6R2V0UmF3VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVE
YXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJp
bmRpbmdQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEt
PnJhd1RlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0
YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpU
ZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5k
KCZpbmZvKTsKICAgICBpZiAocmVzdWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkp
CiAgICAgICAgIHJldHVybiByZXN1bHQtPnNlY29uZDsKIApAQCAtODMsOCArODMsOCBAQCB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0RXhjZXB0aW9uOjpHZXRSYXdU
ZW1wbGF0ZSgpCiAKIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3RF
eGNlcHRpb246OkdldFRlbXBsYXRlKCkKIHsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSog
ZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7Ci0gICAgVjhCaW5kaW5n
UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT50ZW1w
bGF0ZU1hcCgpLmZpbmQoJmluZm8pOworICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBl
cklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgVjhQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVN
YXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnRlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CiAg
ICAgaWYgKHJlc3VsdCAhPSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmVuZCgpKQogICAgICAgICByZXR1
cm4gcmVzdWx0LT5zZWNvbmQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggZWU0ZGFiYTNj
ZmY3OWJiNTRhNzBkMmNhMzg1YzczNTlkNTc4NDIyYS4uZWY2YmQ1ZDQwODE1NjQwNWExMTZmYjUw
M2IxMjZiYzA5Yzg1YWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTMwOSw4ICszMDks
OCBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3Vy
ZVY4VGVzdEludGVyZmFjZVRlbXBsYXRlKHY4OgogCiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4gVjhUZXN0SW50ZXJmYWNlOjpHZXRSYXdUZW1wbGF0ZSgpCiB7Ci0gICAgVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3Vy
cmVudCgpOwotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0
b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKKyAgICBWOFBl
cklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4
UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT5yYXdU
ZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8pOwogICAgIGlmIChyZXN1bHQgIT0gZGF0YS0+cmF3VGVt
cGxhdGVNYXAoKS5lbmQoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC0+c2Vjb25kOwogCkBAIC0z
MjIsOCArMzIyLDggQEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVz
dEludGVyZmFjZTo6R2V0UmF3VGVtcGxhdGUoKQogCiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4gVjhUZXN0SW50ZXJmYWNlOjpHZXRUZW1wbGF0ZSgpCiB7Ci0gICAgVjhCaW5k
aW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVu
dCgpOwotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3Ig
cmVzdWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKKyAgICBWOFBlcklzb2xh
dGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4UGVySXNv
bGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT50ZW1wbGF0ZU1h
cCgpLmZpbmQoJmluZm8pOwogICAgIGlmIChyZXN1bHQgIT0gZGF0YS0+dGVtcGxhdGVNYXAoKS5l
bmQoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC0+c2Vjb25kOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggMGVjOWU5YmUyZmI3OWI0NGY4YmE4
MmI2MzE5ODNhNWY5ODc0Y2UxYy4uYzc0MGI5NTU2MGI3OTY5NWY2NWUwODdmYjE0NjA5ZmQwMTlh
YmZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApA
QCAtNzksOCArNzksOCBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IENvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZQogCiB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0
UmF3VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRlTWFw
KCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0
ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRl
cmF0b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAgICBp
ZiAocmVzdWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJldHVy
biByZXN1bHQtPnNlY29uZDsKIApAQCAtOTIsOCArOTIsOCBAQCB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0UmF3VGVt
cGxhdAogCiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcjo6R2V0VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xh
dGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRh
dGEtPnRlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0
YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpU
ZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZp
bmZvKTsKICAgICBpZiAocmVzdWx0ICE9IGRhdGEtPnRlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAg
ICAgIHJldHVybiByZXN1bHQtPnNlY29uZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwCmluZGV4IDhkOWFjZTJjODljNTM3YzlhOGQ1ZmU3NjE3N2UxM2RhNTdkOTNmMGIuLjlh
ZTY3NGJiYjZmZDc0MmM0NDg1ZjEwZjllYjQyZWU5Y2M4ZGIyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyMCw4ICsxMjAsOCBAQCBzdGF0aWMgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE5hbWVkQ29uc3RydWN0
b3JUZW1wbAogCiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6R2V0UmF3VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xh
dGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRh
dGEtPnJhd1RlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSog
ZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRh
OjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5m
aW5kKCZpbmZvKTsKICAgICBpZiAocmVzdWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5k
KCkpCiAgICAgICAgIHJldHVybiByZXN1bHQtPnNlY29uZDsKIApAQCAtMTMzLDggKzEzMyw4IEBA
IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3ROYW1lZENvbnN0cnVj
dG9yOjpHZXRSYXdUZW1wbGF0ZSgpCiAKIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSgpCiB7Ci0gICAgVjhCaW5k
aW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVu
dCgpOwotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3Ig
cmVzdWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKKyAgICBWOFBlcklzb2xh
dGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4UGVySXNv
bGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQgPSBkYXRhLT50ZW1wbGF0ZU1h
cCgpLmZpbmQoJmluZm8pOwogICAgIGlmIChyZXN1bHQgIT0gZGF0YS0+dGVtcGxhdGVNYXAoKS5l
bmQoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC0+c2Vjb25kOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKaW5kZXgg
MjhlMDg2NDZmODM2NzhhN2JlYWFhMWRiMWVmMTlkZjFhZGJjNTgwMS4uOTkxNmNjMTZmZjcxODQ5
MjNkYmJkZGNkY2Q4OTdlMWVlZTJiNDU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcApAQCAtNzksOCArNzksOCBA
QCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4
VGVzdE5vZGVUZW1wbGF0ZSh2ODo6UGVycwogCiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gVjhUZXN0Tm9kZTo6R2V0UmF3VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Bl
cklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsK
LSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3Vs
dCA9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRl
RGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xh
dGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVN
YXAoKS5maW5kKCZpbmZvKTsKICAgICBpZiAocmVzdWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFw
KCkuZW5kKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQtPnNlY29uZDsKIApAQCAtOTIsOCArOTIs
OCBAQCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0Tm9kZTo6R2V0
UmF3VGVtcGxhdGUoKQogCiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhU
ZXN0Tm9kZTo6R2V0VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBk
YXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQ
ZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnRlbXBs
YXRlTWFwKCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVy
SXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1h
cDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAg
ICBpZiAocmVzdWx0ICE9IGRhdGEtPnRlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJldHVy
biByZXN1bHQtPnNlY29uZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA2Njg0N2RmZjM4MjAwNTRkNzFiNGVj
ZDMwYzc4MGNhMjY2MzlkZjM4Li41NzAwMGY0MTNiMDMzZDYwYzk2YjFlNTViOTFjZTM0Njk1YWY4
ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcApAQCAtMjI1OCw4ICsyMjU4LDggQEAgc3RhdGljIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSh2ODo6
UGVyc2kKIAogdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdE9iajo6
R2V0UmF3VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0g
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRl
TWFwKCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNv
bGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6
aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAg
ICBpZiAocmVzdWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJl
dHVybiByZXN1bHQtPnNlY29uZDsKIApAQCAtMjI3MSw4ICsyMjcxLDggQEAgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUoKQogCiB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0T2JqOjpHZXRUZW1wbGF0
ZSgpCiB7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJ
c29sYXRlRGF0YTo6Y3VycmVudCgpOwotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpUZW1w
bGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+dGVtcGxhdGVNYXAoKS5maW5kKCZpbmZv
KTsKKyAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVu
dCgpOworICAgIFY4UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRvciByZXN1bHQg
PSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8pOwogICAgIGlmIChyZXN1bHQgIT0gZGF0
YS0+dGVtcGxhdGVNYXAoKS5lbmQoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC0+c2Vjb25kOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwCmluZGV4IDJmNzY3ODRlYjE5NDRjY2M0ZDZjMzU3MmViNTgzMDI4YjdjYzUwNGQuLjc2
ZDhlODEyM2JkMWUzMjlhZDZlMDFkMTVkMzQ5M2ZhY2FkYTZiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yNjIs
OCArMjYyLDggQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBD
b25maWd1cmVWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWUKIAogdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6
R2V0UmF3VGVtcGxhdGUoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0g
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRl
TWFwKCkuZmluZCgmaW5mbyk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNv
bGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6
aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+cmF3VGVtcGxhdGVNYXAoKS5maW5kKCZpbmZvKTsKICAg
ICBpZiAocmVzdWx0ICE9IGRhdGEtPnJhd1RlbXBsYXRlTWFwKCkuZW5kKCkpCiAgICAgICAgIHJl
dHVybiByZXN1bHQtPnNlY29uZDsKIApAQCAtMjc1LDggKzI3NSw4IEBAIHY4OjpQZXJzaXN0ZW50
PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OkdldFJhCiAKIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkdldFRlbXBsYXRlKCkKIHsKLSAgICBWOEJp
bmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJy
ZW50KCk7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVyYXRv
ciByZXN1bHQgPSBkYXRhLT50ZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8pOworICAgIFY4UGVySXNv
bGF0ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgVjhQZXJJ
c29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnRlbXBsYXRl
TWFwKCkuZmluZCgmaW5mbyk7CiAgICAgaWYgKHJlc3VsdCAhPSBkYXRhLT50ZW1wbGF0ZU1hcCgp
LmVuZCgpKQogICAgICAgICByZXR1cm4gcmVzdWx0LT5zZWNvbmQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRE9NRGF0YS5jcHAKaW5kZXggOWM4NGI1Mzg2YTU0N2NmNzg2MjE4MWViODA4YzRm
MThkMWRjM2JhOC4uMWE2M2MyZjJiZGZlOGE2OGRlMjZiYjk2NjNlMmVkOWNjZGRkOTFhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogRE9NRGF0YVN0b3JlJiBET01EYXRhOjpnZXRDdXJyZW50U3RvcmUo
djg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdGF0aWNE
T01EYXRhU3RvcmUsIGRlZmF1bHRTdG9yZSwgKCkpOwotICAgIFY4QmluZGluZ1Blcklzb2xhdGVE
YXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoaXNvbGF0ZSk7Cisg
ICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoaXNv
bGF0ZSk7CiAgICAgaWYgKFVOTElLRUxZKGRhdGEtPmRvbURhdGFTdG9yZSgpICE9IDApKQogICAg
ICAgICByZXR1cm4gKmRhdGEtPmRvbURhdGFTdG9yZSgpOwogICAgIFY4SXNvbGF0ZWRDb250ZXh0
KiBjb250ZXh0ID0gVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwCmluZGV4IDAwMzQ1NmE4N2Q4YmU5NDFm
N2MxMTI4ZDgyMGE1MDkzODQ4MjI1NTAuLjIyNzYxOWU3OGI5NmQ0MjNmZmYwYmQ2NDAwZmE0YzAw
MTYxYzI2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNw
cApAQCAtOTksNyArOTksNyBAQCBET01EYXRhU3RvcmU6On5ET01EYXRhU3RvcmUoKQogCiBET01E
YXRhTGlzdCYgRE9NRGF0YVN0b3JlOjphbGxTdG9yZXMoKQogewotICAgIHJldHVybiBWOEJpbmRp
bmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5hbGxTdG9yZXMoKTsKKyAgICByZXR1cm4gVjhQ
ZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5hbGxTdG9yZXMoKTsKIH0KIAogdm9pZCogRE9NRGF0
YVN0b3JlOjpnZXRET01XcmFwcGVyTWFwKERPTVdyYXBwZXJNYXBUeXBlIHR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnQuY3BwCmluZGV4IDY2M2VhNTc0ZTdi
OWRjNjE2MTA0ZGNmMzQ0YjJlNGU1ZmE0ZWE1MjYuLmZjMTNhN2U5MzE5MWNhMjA1YjU0OTQ2ZGUw
YWIxMDFjNmEzNWQ3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdEdDRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdD
RXZlbnQuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGlj
IEdDRXZlbnREYXRhKiBpc29sYXRlR0NFdmVudERhdGEoKQogewotICAgIFY4QmluZGluZ1Blcklz
b2xhdGVEYXRhKiBpc29sYXRlRGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50
KCk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogaXNvbGF0ZURhdGEgPSBWOFBlcklzb2xhdGVEYXRh
OjpjdXJyZW50KCk7CiAgICAgQVNTRVJUKGlzb2xhdGVEYXRhKTsKICAgICByZXR1cm4gaXNvbGF0
ZURhdGEtPmdjRXZlbnREYXRhKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRQcm9maWxlci5jcHAKaW5kZXggMTNjYWQzMzgzNDNhMmRkMTkzZTcwYjY5ZmUzMjJmOTdk
Y2Y2NjU4MS4uOTg1OGNlMzI1NzM4ZTIwOTgwYzQ0NjExODIyMTIwYWY4NjZhMGVhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcApAQCAtMTk1LDcg
KzE5NSw3IEBAIHZvaWQgU2NyaXB0UHJvZmlsZXI6OnZpc2l0Tm9kZVdyYXBwZXJzKE5vZGVXcmFw
cGVyVmlzaXRvciogdmlzaXRvcikKIAogdm9pZCBTY3JpcHRQcm9maWxlcjo6dmlzaXRFeHRlcm5h
bFN0cmluZ3MoRXh0ZXJuYWxTdHJpbmdWaXNpdG9yKiB2aXNpdG9yKQogewotICAgIFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnZpc2l0RXh0ZXJuYWxTdHJpbmdzKHZpc2l0b3Ip
OworICAgIFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+dmlzaXRFeHRlcm5hbFN0cmluZ3Mo
dmlzaXRvcik7CiB9CiAKIHZvaWQgU2NyaXB0UHJvZmlsZXI6OnZpc2l0RXh0ZXJuYWxBcnJheXMo
RXh0ZXJuYWxBcnJheVZpc2l0b3IqIHZpc2l0b3IpCkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBT
Y3JpcHRQcm9maWxlcjo6dmlzaXRFeHRlcm5hbEFycmF5cyhFeHRlcm5hbEFycmF5VmlzaXRvciog
dmlzaXRvcikKIAogdm9pZCBTY3JpcHRQcm9maWxlcjo6Y29sbGVjdEJpbmRpbmdNZW1vcnlJbmZv
KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uKQogewotICAgIFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
KTsKKyAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVu
dCgpOwogICAgIGluc3RydW1lbnRhdGlvbi0+YWRkUm9vdE9iamVjdChkYXRhKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU3RhdGljRE9NRGF0YVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1N0YXRpY0RPTURhdGFTdG9yZS5jcHAKaW5k
ZXggOTk2YzljODdjMGFhNmYwZjBlMWE2ZTE1NWJjNzRiYmExOTUzOTE1OC4uNGNlZDZhMjNlYmM4
MTYwMmJlM2RhN2YyZjM0Njk1M2ExYTQxYmZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU3RhdGljRE9NRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TdGF0aWNET01EYXRhU3RvcmUuY3BwCkBAIC00NSwxMiArNDUsMTIgQEAgU3Rh
dGljRE9NRGF0YVN0b3JlOjpTdGF0aWNET01EYXRhU3RvcmUoKQogICAgIG1fYWN0aXZlRG9tTm9k
ZU1hcCA9ICZtX3N0YXRpY0FjdGl2ZURvbU5vZGVNYXA7CiAgICAgbV9kb21PYmplY3RNYXAgPSAm
bV9zdGF0aWNEb21PYmplY3RNYXA7CiAgICAgbV9hY3RpdmVEb21PYmplY3RNYXAgPSAmbV9zdGF0
aWNBY3RpdmVEb21PYmplY3RNYXA7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJl
bnQoKS0+cmVnaXN0ZXJET01EYXRhU3RvcmUodGhpcyk7CisgICAgVjhQZXJJc29sYXRlRGF0YTo6
Y3VycmVudCgpLT5yZWdpc3RlckRPTURhdGFTdG9yZSh0aGlzKTsKIH0KIAogU3RhdGljRE9NRGF0
YVN0b3JlOjp+U3RhdGljRE9NRGF0YVN0b3JlKCkKIHsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YTo6Y3VycmVudCgpLT51bnJlZ2lzdGVyRE9NRGF0YVN0b3JlKHRoaXMpOworICAgIFY4UGVy
SXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+dW5yZWdpc3RlckRPTURhdGFTdG9yZSh0aGlzKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5jcHAKaW5kZXggZjRkYzI4Yjg4ZjQxZTcyZWUzODJlMmQ2NGUwZjQyMDQ2OTA4OThlYy4u
YTVlOTVhODdiZmMwNTljYzUwNDlhZjgzMGM3NmVkMWZjM2M2YzU3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC01Myw3ICs1Myw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotdm9pZCBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YTo6dmlzaXRFeHRlcm5hbFN0cmluZ3MoRXh0ZXJuYWxTdHJpbmdWaXNpdG9yKiB2aXNp
dG9yKQordm9pZCBWOFBlcklzb2xhdGVEYXRhOjp2aXNpdEV4dGVybmFsU3RyaW5ncyhFeHRlcm5h
bFN0cmluZ1Zpc2l0b3IqIHZpc2l0b3IpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNj
b3BlOwogICAgIGNsYXNzIFZpc2l0b3JJbXBsIDogcHVibGljIHY4OjpFeHRlcm5hbFJlc291cmNl
VmlzaXRvciB7CkBAIC0zMTgsNyArMzE4LDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IGNyZWF0ZVJhd1RlbXBsYXRlKCkKIAogdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmlu
Zz4gZ2V0VG9TdHJpbmdOYW1lKCkKIHsKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiYg
dG9TdHJpbmdOYW1lID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+dG9TdHJp
bmdOYW1lKCk7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4mIHRvU3RyaW5nTmFtZSA9
IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+dG9TdHJpbmdOYW1lKCk7CiAgICAgaWYgKHRv
U3RyaW5nTmFtZS5Jc0VtcHR5KCkpCiAgICAgICAgIHRvU3RyaW5nTmFtZSA9IHY4OjpQZXJzaXN0
ZW50PHY4OjpTdHJpbmc+OjpOZXcodjg6OlN0cmluZzo6TmV3KCJ0b1N0cmluZyIpKTsKICAgICBy
ZXR1cm4gKnRvU3RyaW5nTmFtZTsKQEAgLTM0Myw3ICszNDMsNyBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yVG9TdHJpbmcoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKIAogdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGdldFRvU3RyaW5nVGVt
cGxhdGUoKQogewotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiYgdG9T
dHJpbmdUZW1wbGF0ZSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnRvU3Ry
aW5nVGVtcGxhdGUoKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4m
IHRvU3RyaW5nVGVtcGxhdGUgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnRvU3RyaW5n
VGVtcGxhdGUoKTsKICAgICBpZiAodG9TdHJpbmdUZW1wbGF0ZS5Jc0VtcHR5KCkpCiAgICAgICAg
IHRvU3RyaW5nVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46
Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KGNvbnN0cnVjdG9yVG9TdHJpbmcpKTsKICAg
ICByZXR1cm4gdG9TdHJpbmdUZW1wbGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmgKaW5kZXggN2IyZjAyZTQ2ODc1ODViMDhhNTQ4MDQ2MWRmMDEwNjQ1NTcyM2FlZi4uODA3
MDYxZjE3MDAwYTdhMjg0MzQxM2MyYmZjMTVlOWZlZDc5NTQzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTM3LDExICszNywxMSBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nSGVscGVycy5oIgogI2luY2x1ZGUgIlY4
QmluZGluZ01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ1Blcklzb2xhdGVEYXRhLmgiCiAj
aW5jbHVkZSAiVjhDb25maWd1cmVET01BdHRyaWJ1dGVzQW5kTWV0aG9kcy5oIgogI2luY2x1ZGUg
IlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
VjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKKyNpbmNsdWRlICJWOFBlcklzb2xhdGVEYXRhLmgiCiAj
aW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4VmFsdWVDYWNoZS5oIgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC04NywxOCArODcsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIENvbnN0cnVjdG9yTW9kZSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFY4
QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1
cnJlbnQoKTsKKyAgICAgICAgICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xh
dGVEYXRhOjpjdXJyZW50KCk7CiAgICAgICAgICAgICBtX3ByZXZpb3VzID0gZGF0YS0+bV9jb25z
dHJ1Y3Rvck1vZGU7CiAgICAgICAgICAgICBkYXRhLT5tX2NvbnN0cnVjdG9yTW9kZSA9IFdyYXBF
eGlzdGluZ09iamVjdDsKICAgICAgICAgfQogCiAgICAgICAgIH5Db25zdHJ1Y3Rvck1vZGUoKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4
QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgICAgICAgICBWOFBlcklzb2xh
dGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOwogICAgICAgICAgICAg
ZGF0YS0+bV9jb25zdHJ1Y3Rvck1vZGUgPSBtX3ByZXZpb3VzOwogICAgICAgICB9CiAKLSAgICAg
ICAgc3RhdGljIGJvb2wgY3VycmVudCgpIHsgcmV0dXJuIFY4QmluZGluZ1Blcklzb2xhdGVEYXRh
OjpjdXJyZW50KCktPm1fY29uc3RydWN0b3JNb2RlOyB9CisgICAgICAgIHN0YXRpYyBib29sIGN1
cnJlbnQoKSB7IHJldHVybiBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPm1fY29uc3RydWN0
b3JNb2RlOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBib29sIG1fcHJldmlvdXM7CkBAIC0x
MzgsNyArMTM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpZiAoIXN0cmluZ0lt
cGwpCiAgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZSA/IHY4OjpTdHJpbmc6OkVtcHR5KGlzb2xh
dGUpIDogdjg6OlN0cmluZzo6RW1wdHkoKTsKIAotICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KGlzb2xhdGUpOwor
ICAgICAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVu
dChpc29sYXRlKTsKICAgICAgICAgcmV0dXJuIGRhdGEtPnN0cmluZ0NhY2hlKCktPnY4RXh0ZXJu
YWxTdHJpbmcoc3RyaW5nSW1wbCwgaXNvbGF0ZSk7CiAgICAgfQogCkBAIC0xNTAsMTMgKzE1MCwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6SW50
ZWdlcj4gdjhJbnRlZ2VyKGludCB2YWx1ZSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogICAg
IHsKLSAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJ
c29sYXRlRGF0YTo6Y3VycmVudChpc29sYXRlKTsKKyAgICAgICAgVjhQZXJJc29sYXRlRGF0YSog
ZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoaXNvbGF0ZSk7CiAgICAgICAgIHJldHVy
biBkYXRhLT5pbnRlZ2VyQ2FjaGUoKS0+djhJbnRlZ2VyKHZhbHVlKTsKICAgICB9CiAKICAgICBp
bmxpbmUgdjg6OkhhbmRsZTx2ODo6SW50ZWdlcj4gdjhVbnNpZ25lZEludGVnZXIodW5zaWduZWQg
dmFsdWUsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCkKICAgICB7Ci0gICAgICAgIFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
aXNvbGF0ZSk7CisgICAgICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xhdGVE
YXRhOjpjdXJyZW50KGlzb2xhdGUpOwogICAgICAgICByZXR1cm4gZGF0YS0+aW50ZWdlckNhY2hl
KCktPnY4VW5zaWduZWRJbnRlZ2VyKHZhbHVlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZ1Blcklzb2xhdGVEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZ1Blcklzb2xhdGVEYXRhLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTcwNzgxYzU4MjJlZmQxOTNkYThiMmJmY2ZkZTBjMGM2
ODRmYWIwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmdQZXJJc29sYXRlRGF0YS5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdQZXJJc29sYXRlRGF0YS5oIgotCi0jaW5jbHVkZSAi
VjhCaW5kaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotVjhCaW5kaW5nUGVySXNvbGF0
ZURhdGE6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhKHY4OjpJc29sYXRlKiBpc29sYXRlKQotICAg
IDogbV9zdHJpbmdDYWNoZShhZG9wdFB0cihuZXcgU3RyaW5nQ2FjaGUoKSkpCi0gICAgLCBtX2lu
dGVnZXJDYWNoZShhZG9wdFB0cihuZXcgSW50ZWdlckNhY2hlKCkpKQotICAgICwgbV9kb21EYXRh
U3RvcmUoMCkKLSAgICAsIG1faGlkZGVuUHJvcGVydHlOYW1lKGFkb3B0UHRyKG5ldyBWOEhpZGRl
blByb3BlcnR5TmFtZSgpKSkKLSAgICAsIG1fY29uc3RydWN0b3JNb2RlKENvbnN0cnVjdG9yTW9k
ZTo6Q3JlYXRlTmV3T2JqZWN0KQotICAgICwgbV9yZWN1cnNpb25MZXZlbCgwKQotI2lmbmRlZiBO
REVCVUcKLSAgICAsIG1faW50ZXJuYWxTY3JpcHRSZWN1cnNpb25MZXZlbCgwKQotI2VuZGlmCi0g
ICAgLCBtX2djRXZlbnREYXRhKGFkb3B0UHRyKG5ldyBHQ0V2ZW50RGF0YSgpKSkKLSAgICAsIG1f
c2hvdWxkQ29sbGVjdEdhcmJhZ2VTb29uKGZhbHNlKQotewotfQotCi1WOEJpbmRpbmdQZXJJc29s
YXRlRGF0YTo6flY4QmluZGluZ1Blcklzb2xhdGVEYXRhKCkKLXsKLX0KLQotVjhCaW5kaW5nUGVy
SXNvbGF0ZURhdGEqIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjcmVhdGUodjg6Oklzb2xhdGUq
IGlzb2xhdGUpCi17Ci0gICAgQVNTRVJUKGlzb2xhdGUpOwotICAgIEFTU0VSVCghaXNvbGF0ZS0+
R2V0RGF0YSgpKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IG5ldyBWOEJp
bmRpbmdQZXJJc29sYXRlRGF0YShpc29sYXRlKTsKLSAgICBpc29sYXRlLT5TZXREYXRhKGRhdGEp
OwotICAgIHJldHVybiBkYXRhOwotfQotCi12b2lkIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpl
bnN1cmVJbml0aWFsaXplZCh2ODo6SXNvbGF0ZSogaXNvbGF0ZSkgCi17Ci0gICAgQVNTRVJUKGlz
b2xhdGUpOwotICAgIGlmICghaXNvbGF0ZS0+R2V0RGF0YSgpKSAKLSAgICAgICAgY3JlYXRlKGlz
b2xhdGUpOwotfQotCi12b2lkIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpkaXNwb3NlKHY4OjpJ
c29sYXRlKiBpc29sYXRlKQotewotICAgIHZvaWQqIGRhdGEgPSBpc29sYXRlLT5HZXREYXRhKCk7
Ci0gICAgZGVsZXRlIHN0YXRpY19jYXN0PFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKj4oZGF0YSk7
Ci0gICAgaXNvbGF0ZS0+U2V0RGF0YSgwKTsKLX0KLQotdm9pZCBWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKLXsKLSAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBNZW1vcnlJbnN0cnVtZW50YXRpb246OkJpbmRpbmcpOwotICAgIGluZm8uYWRkSGFzaE1h
cChtX3Jhd1RlbXBsYXRlcyk7Ci0gICAgaW5mby5hZGRIYXNoTWFwKG1fdGVtcGxhdGVzKTsKLSAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3N0cmluZ0NhY2hlKTsKLSAgICBpbmZvLmFk
ZFZlY3RvcihtX2RvbURhdGFMaXN0KTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9k
b21EYXRhTGlzdC5zaXplKCk7IGkrKykKLSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1i
ZXIobV9kb21EYXRhTGlzdFtpXSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZ1Blcklzb2xhdGVEYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmdQZXJJc29sYXRlRGF0YS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDU5ZjlmZDZhNWMwN2EyOGM4NjJjZGI4
NDkwODIzZDYwYjE3NGMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZ1Blcklzb2xhdGVEYXRh
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhX2gKLSNkZWZpbmUgVjhCaW5kaW5nUGVySXNvbGF0ZURh
dGFfaAotCi0jaW5jbHVkZSA8djguaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRE9NRGF0YVN0b3JlOwotY2xhc3MgR0NFdmVudERhdGE7Ci1jbGFz
cyBJbnRlZ2VyQ2FjaGU7Ci1jbGFzcyBNZW1vcnlPYmplY3RJbmZvOwotY2xhc3MgU3RyaW5nQ2Fj
aGU7Ci1jbGFzcyBWOEhpZGRlblByb3BlcnR5TmFtZTsKLXN0cnVjdCBXcmFwcGVyVHlwZUluZm87
Ci0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotY2xhc3MgRXh0ZXJuYWxTdHJpbmdWaXNpdG9yOwot
I2VuZGlmCi0KLXR5cGVkZWYgV1RGOjpWZWN0b3I8RE9NRGF0YVN0b3JlKj4gRE9NRGF0YUxpc3Q7
Ci0KLSNpZm5kZWYgTkRFQlVHCi1jbGFzcyBHbG9iYWxIYW5kbGVJbmZvOwotdHlwZWRlZiBIYXNo
TWFwPHY4OjpWYWx1ZSosIEdsb2JhbEhhbmRsZUluZm8qPiBHbG9iYWxIYW5kbGVNYXA7Ci0jZW5k
aWYKLQotY2xhc3MgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEgewotcHVibGljOgotICAgIHN0YXRp
YyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogY3JlYXRlKHY4OjpJc29sYXRlKik7Ci0gICAgc3Rh
dGljIHZvaWQgZW5zdXJlSW5pdGlhbGl6ZWQodjg6Oklzb2xhdGUqKTsKLSAgICBzdGF0aWMgVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGEqIGN1cnJlbnQodjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQot
ICAgIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFpc29sYXRlKSkKLSAgICAgICAgICAgIGlzb2xh
dGUgPSB2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpOwotICAgICAgICBBU1NFUlQoaXNvbGF0ZS0+
R2V0RGF0YSgpKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFY4QmluZGluZ1Blcklzb2xh
dGVEYXRhKj4oaXNvbGF0ZS0+R2V0RGF0YSgpKTsgCi0gICAgfQotICAgIHN0YXRpYyB2b2lkIGRp
c3Bvc2Uodjg6Oklzb2xhdGUqKTsKLQotICAgIHR5cGVkZWYgSGFzaE1hcDxXcmFwcGVyVHlwZUlu
Zm8qLCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gPiBUZW1wbGF0ZU1hcDsK
LQotICAgIFRlbXBsYXRlTWFwJiByYXdUZW1wbGF0ZU1hcCgpIHsgcmV0dXJuIG1fcmF3VGVtcGxh
dGVzOyB9Ci0gICAgVGVtcGxhdGVNYXAmIHRlbXBsYXRlTWFwKCkgeyByZXR1cm4gbV90ZW1wbGF0
ZXM7IH0KLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiYgdG9TdHJpbmdOYW1lKCkgeyBy
ZXR1cm4gbV90b1N0cmluZ05hbWU7IH0KLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUoKSB7IHJldHVybiBtX3RvU3RyaW5nVGVtcGxhdGU7
IH0KLQotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiYgbGF6eUV2ZW50
TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2xhenlF
dmVudExpc3RlbmVyVG9TdHJpbmdUZW1wbGF0ZTsKLSAgICB9Ci0KLSAgICBTdHJpbmdDYWNoZSog
c3RyaW5nQ2FjaGUoKSB7IHJldHVybiBtX3N0cmluZ0NhY2hlLmdldCgpOyB9Ci0gICAgSW50ZWdl
ckNhY2hlKiBpbnRlZ2VyQ2FjaGUoKSB7IHJldHVybiBtX2ludGVnZXJDYWNoZS5nZXQoKTsgfQot
Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICB2b2lkIHZpc2l0RXh0ZXJuYWxTdHJpbmdzKEV4
dGVybmFsU3RyaW5nVmlzaXRvciopOwotI2VuZGlmCi0gICAgRE9NRGF0YUxpc3QmIGFsbFN0b3Jl
cygpIHsgcmV0dXJuIG1fZG9tRGF0YUxpc3Q7IH0KLQotICAgIFY4SGlkZGVuUHJvcGVydHlOYW1l
KiBoaWRkZW5Qcm9wZXJ0eU5hbWUoKSB7IHJldHVybiBtX2hpZGRlblByb3BlcnR5TmFtZS5nZXQo
KTsgfQotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYgYXV4aWxpYXJ5Q29udGV4dCgp
IHsgcmV0dXJuIG1fYXV4aWxpYXJ5Q29udGV4dDsgfQotCi0gICAgdm9pZCByZWdpc3RlckRPTURh
dGFTdG9yZShET01EYXRhU3RvcmUqIGRvbURhdGFTdG9yZSkgCi0gICAgewotICAgICAgICBtX2Rv
bURhdGFMaXN0LmFwcGVuZChkb21EYXRhU3RvcmUpOwotICAgIH0KLQotICAgIHZvaWQgdW5yZWdp
c3RlckRPTURhdGFTdG9yZShET01EYXRhU3RvcmUqIGRvbURhdGFTdG9yZSkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX2RvbURhdGFMaXN0LmZpbmQoZG9tRGF0YVN0b3JlKSk7Ci0gICAgICAgIG1f
ZG9tRGF0YUxpc3QucmVtb3ZlKG1fZG9tRGF0YUxpc3QuZmluZChkb21EYXRhU3RvcmUpKTsKLSAg
ICB9Ci0KLSAgICAvLyBET01EYXRhU3RvcmUgaXMgb3duZWQgb3V0c2lkZSBWOEJpbmRpbmdQZXJJ
c29sYXRlRGF0YS4KLSAgICBET01EYXRhU3RvcmUqIGRvbURhdGFTdG9yZSgpIHsgcmV0dXJuIG1f
ZG9tRGF0YVN0b3JlOyB9Ci0gICAgdm9pZCBzZXRET01EYXRhU3RvcmUoRE9NRGF0YVN0b3JlKiBz
dG9yZSkgeyBtX2RvbURhdGFTdG9yZSA9IHN0b3JlOyB9Ci0KLSAgICBpbnQgcmVjdXJzaW9uTGV2
ZWwoKSBjb25zdCB7IHJldHVybiBtX3JlY3Vyc2lvbkxldmVsOyB9Ci0gICAgaW50IGluY3JlbWVu
dFJlY3Vyc2lvbkxldmVsKCkgeyByZXR1cm4gKyttX3JlY3Vyc2lvbkxldmVsOyB9Ci0gICAgaW50
IGRlY3JlbWVudFJlY3Vyc2lvbkxldmVsKCkgeyByZXR1cm4gLS1tX3JlY3Vyc2lvbkxldmVsOyB9
Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgR2xvYmFsSGFuZGxlTWFwJiBnbG9iYWxIYW5kbGVNYXAo
KSB7IHJldHVybiBtX2dsb2JhbEhhbmRsZU1hcDsgfQotCi0gICAgaW50IGludGVybmFsU2NyaXB0
UmVjdXJzaW9uTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFsU2NyaXB0UmVjdXJzaW9u
TGV2ZWw7IH0KLSAgICBpbnQgaW5jcmVtZW50SW50ZXJuYWxTY3JpcHRSZWN1cnNpb25MZXZlbCgp
IHsgcmV0dXJuICsrbV9pbnRlcm5hbFNjcmlwdFJlY3Vyc2lvbkxldmVsOyB9Ci0gICAgaW50IGRl
Y3JlbWVudEludGVybmFsU2NyaXB0UmVjdXJzaW9uTGV2ZWwoKSB7IHJldHVybiAtLW1faW50ZXJu
YWxTY3JpcHRSZWN1cnNpb25MZXZlbDsgfQotI2VuZGlmCi0KLSAgICBHQ0V2ZW50RGF0YSogZ2NF
dmVudERhdGEoKSB7IHJldHVybiBtX2djRXZlbnREYXRhLmdldCgpOyB9Ci0KLSAgICB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKLQotICAgIC8vIEdpdmVz
IHRoZSBzeXN0ZW0gYSBoaW50IHRoYXQgd2Ugc2hvdWxkIHJlcXVlc3QgZ2FyYmFnZSBjb2xsZWN0
aW9uCi0gICAgLy8gdXBvbiB0aGUgbmV4dCBjbG9zZSBvciBuYXZpZ2F0aW9uIGV2ZW50LCBiZWNh
dXNlIHNvbWUgZXhwZW5zaXZlCi0gICAgLy8gb2JqZWN0cyBoYXZlIGJlZW4gYWxsb2NhdGVkIHRo
YXQgd2Ugd2FudCB0byB0YWtlIGV2ZXJ5IG9wcG9ydHVuaXR5Ci0gICAgLy8gdG8gY29sbGVjdC4K
LSAgICB2b2lkIHNldFNob3VsZENvbGxlY3RHYXJiYWdlU29vbigpIHsgbV9zaG91bGRDb2xsZWN0
R2FyYmFnZVNvb24gPSB0cnVlOyB9Ci0gICAgdm9pZCBjbGVhclNob3VsZENvbGxlY3RHYXJiYWdl
U29vbigpIHsgbV9zaG91bGRDb2xsZWN0R2FyYmFnZVNvb24gPSBmYWxzZTsgfQotICAgIGJvb2wg
c2hvdWxkQ29sbGVjdEdhcmJhZ2VTb29uKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDb2xsZWN0
R2FyYmFnZVNvb247IH0KLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YSh2ODo6SXNvbGF0ZSopOwotICAgIH5WOEJpbmRpbmdQZXJJc29sYXRlRGF0YSgpOwot
Ci0gICAgVGVtcGxhdGVNYXAgbV9yYXdUZW1wbGF0ZXM7Ci0gICAgVGVtcGxhdGVNYXAgbV90ZW1w
bGF0ZXM7Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbV90b1N0cmluZ05hbWU7Ci0g
ICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1fdG9TdHJpbmdUZW1wbGF0
ZTsKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gbV9sYXp5RXZlbnRM
aXN0ZW5lclRvU3RyaW5nVGVtcGxhdGU7Ci0gICAgT3duUHRyPFN0cmluZ0NhY2hlPiBtX3N0cmlu
Z0NhY2hlOwotICAgIE93blB0cjxJbnRlZ2VyQ2FjaGU+IG1faW50ZWdlckNhY2hlOwotCi0gICAg
RE9NRGF0YUxpc3QgbV9kb21EYXRhTGlzdDsKLSAgICBET01EYXRhU3RvcmUqIG1fZG9tRGF0YVN0
b3JlOwotCi0gICAgT3duUHRyPFY4SGlkZGVuUHJvcGVydHlOYW1lPiBtX2hpZGRlblByb3BlcnR5
TmFtZTsKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6Q29udGV4dD4gbV9hdXhpbGlhcnlDb250ZXh0
OwotCi0gICAgYm9vbCBtX2NvbnN0cnVjdG9yTW9kZTsKLSAgICBmcmllbmQgY2xhc3MgQ29uc3Ry
dWN0b3JNb2RlOwotCi0gICAgaW50IG1fcmVjdXJzaW9uTGV2ZWw7Ci0KLSNpZm5kZWYgTkRFQlVH
Ci0gICAgR2xvYmFsSGFuZGxlTWFwIG1fZ2xvYmFsSGFuZGxlTWFwOwotICAgIGludCBtX2ludGVy
bmFsU2NyaXB0UmVjdXJzaW9uTGV2ZWw7Ci0jZW5kaWYKLSAgICBPd25QdHI8R0NFdmVudERhdGE+
IG1fZ2NFdmVudERhdGE7Ci0gICAgYm9vbCBtX3Nob3VsZENvbGxlY3RHYXJiYWdlU29vbjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFY4QmluZGluZ1Blcklzb2xh
dGVEYXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmNwcAppbmRleCAwYjEw
Y2IwYzY1NGE4Nzg3NzJhYjIwMGM0MTlmMjE0MzdhNDQ2YjNkLi5kZDE4ZDYzYjBkMTNiYzE2ZGRm
YWRhNGI2ZmZhOWIyMGExYzViNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01N
YXAuY3BwCkBAIC00MiwxMiArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRE9NRGF0YVN0
b3JlSGFuZGxlOjpET01EYXRhU3RvcmVIYW5kbGUoKQogICAgIDogbV9zdG9yZShhZG9wdFB0cihu
ZXcgU2NvcGVkRE9NRGF0YVN0b3JlKCkpKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRh
OjpjdXJyZW50KCktPnJlZ2lzdGVyRE9NRGF0YVN0b3JlKG1fc3RvcmUuZ2V0KCkpOworICAgIFY4
UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+cmVnaXN0ZXJET01EYXRhU3RvcmUobV9zdG9yZS5n
ZXQoKSk7CiB9CiAKIERPTURhdGFTdG9yZUhhbmRsZTo6fkRPTURhdGFTdG9yZUhhbmRsZSgpCiB7
Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+dW5yZWdpc3RlckRPTURh
dGFTdG9yZShtX3N0b3JlLmdldCgpKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCkt
PnVucmVnaXN0ZXJET01EYXRhU3RvcmUobV9zdG9yZS5nZXQoKSk7CiB9CiAKIERPTU5vZGVNYXBw
aW5nJiBnZXRET01Ob2RlTWFwKHY4OjpJc29sYXRlKiBpc29sYXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBhMjJiMDk5ODJhNjE0
YjNjNDZjODAxZTdjMWE3OTRlNTE5NTdlYzc0Li41OTJiYTQ0NWE1MTcyNjJhZTllMTViMjljZWEx
OTE3MDYzYWQ5YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcApAQCAtMjk5LDcgKzI5OSw3IEBAIGJvb2wgVjhET01XaW5kb3dTaGVsbDo6
aW5pdENvbnRleHRJZk5lZWRlZCgpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAg
ICAgICAgIFNjcmlwdFByb2ZpbGVyOjppbml0aWFsaXplKCk7CiAjZW5kaWYKLSAgICAgICAgVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGE6OmVuc3VyZUluaXRpYWxpemVkKHY4OjpJc29sYXRlOjpHZXRD
dXJyZW50KCkpOworICAgICAgICBWOFBlcklzb2xhdGVEYXRhOjplbnN1cmVJbml0aWFsaXplZCh2
ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKIAogICAgICAgICBpc1Y4SW5pdGlhbGl6ZWQgPSB0
cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0ND
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcAppbmRleCA2NTE4MmE3ZWNiNzg4MDFiY2NjOWI1YzRiNTYxYTBhMDFkY2U0OTBhLi40YzNk
NTc0MjhkZjFhMDcyNDE5MzRiYjkwYTNmYzcwMzg0N2FhZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIEdsb2JhbEhhbmRsZU1hcCYgY3VycmVudEdsb2JhbEhh
bmRsZU1hcCgpCiB7Ci0gICAgcmV0dXJuIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50
KCktPmdsb2JhbEhhbmRsZU1hcCgpOworICAgIHJldHVybiBWOFBlcklzb2xhdGVEYXRhOjpjdXJy
ZW50KCktPmdsb2JhbEhhbmRsZU1hcCgpOwogfQogCiAvLyBUaGUgZnVuY3Rpb24gaXMgdGhlIHBs
YWNlIHRvIHNldCB0aGUgYnJlYWsgcG9pbnQgdG8gaW5zcGVjdApAQCAtNDE4LDcgKzQxOCw3IEBA
IHZvaWQgVjhHQ0NvbnRyb2xsZXI6OmdjUHJvbG9ndWUoKQogICAgIGdyb3VwZXJWaXNpdG9yLmFw
cGx5R3JvdXBpbmcoKTsKIAogICAgIC8vIENsZWFuIHNpbmdsZSBlbGVtZW50IGNhY2hlIGZvciBz
dHJpbmcgY29udmVyc2lvbnMuCi0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4UGVySXNvbGF0ZURhdGEq
IGRhdGEgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CiAgICAgZGF0YS0+c3RyaW5nQ2Fj
aGUoKS0+Y2xlYXJPbkdDKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcAppbmRleCA5MDFmYTVlNDQ4MTY0ODdmZDMxMzNk
NWNmZDBjZmQ5MGJjYjY4ODZhLi5mZGRkYWZiYWUxOWE0ZWE3NmUyMDkzMDU2MTljNWQ5OGE0ZWJj
NDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3Bl
cnR5TmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNkZWZp
bmUgVjhfREVGSU5FX0hJRERFTl9QUk9QRVJUWShuYW1lKSBcCiB2ODo6SGFuZGxlPHY4OjpTdHJp
bmc+IFY4SGlkZGVuUHJvcGVydHlOYW1lOjpuYW1lKCkgXAogeyBcCi0gICAgVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUqIGhpZGRlblByb3BlcnR5TmFtZSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpj
dXJyZW50KCktPmhpZGRlblByb3BlcnR5TmFtZSgpOyBcCisgICAgVjhIaWRkZW5Qcm9wZXJ0eU5h
bWUqIGhpZGRlblByb3BlcnR5TmFtZSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+aGlk
ZGVuUHJvcGVydHlOYW1lKCk7IFwKICAgICBpZiAoaGlkZGVuUHJvcGVydHlOYW1lLT5tXyMjbmFt
ZS5Jc0VtcHR5KCkpIHsgXAogICAgICAgICBoaWRkZW5Qcm9wZXJ0eU5hbWUtPm1fIyNuYW1lID0g
Y3JlYXRlU3RyaW5nKFY4X0hJRERFTl9QUk9QRVJUWV9QUkVGSVggVjhfQVNfU1RSSU5HKG5hbWUp
KTsgXAogICAgIH0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhM
YXp5RXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlF
dmVudExpc3RlbmVyLmNwcAppbmRleCAyNjljNWNhNTcxMTJiMmM2ZjcyMjNhNjY2M2ZjNmJkNDY0
NzU3NTkyLi45ZjVlNDFjNWIzNTdiOGU2MGRkNmYwZGEyNTg0M2VlNTgzMTliMjZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcApA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgVjhMYXp5RXZlbnRMaXN0ZW5lcjo6cHJlcGFyZUxpc3Rl
bmVyT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgLy8gb3RoZXIg
dXNlLiBUaGF0IGZhaWxzIG1pc2VyYWJseSBpZiB0aGUgYWN0dWFsIHdyYXBwZXIgc291cmNlIGlz
CiAgICAgLy8gcmV0dXJuZWQuCiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+JiB0b1N0cmluZ1RlbXBsYXRlID0KLSAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6
OmN1cnJlbnQoKS0+bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlKCk7CisgICAgICAg
IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1Rl
bXBsYXRlKCk7CiAgICAgaWYgKHRvU3RyaW5nVGVtcGxhdGUuSXNFbXB0eSgpKQogICAgICAgICB0
b1N0cmluZ1RlbXBsYXRlID0gdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+OjpO
ZXcodjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhWOExhenlFdmVudExpc3RlbmVyVG9TdHJpbmcp
KTsKICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiB0b1N0cmluZ0Z1bmN0aW9uOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJc29sYXRlRGF0YS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNTcwMjZhNjZkZjhkOGUyYzdmZGNkYmMyNzZmN2VmNGMzZThiNzMwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJc29sYXRlRGF0YS5jcHAKQEAg
LTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVjhQZXJJc29sYXRlRGF0YS5oIgorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworVjhQZXJJc29sYXRlRGF0YTo6VjhQZXJJc29sYXRlRGF0YSh2ODo6
SXNvbGF0ZSogaXNvbGF0ZSkKKyAgICA6IG1fc3RyaW5nQ2FjaGUoYWRvcHRQdHIobmV3IFN0cmlu
Z0NhY2hlKCkpKQorICAgICwgbV9pbnRlZ2VyQ2FjaGUoYWRvcHRQdHIobmV3IEludGVnZXJDYWNo
ZSgpKSkKKyAgICAsIG1fZG9tRGF0YVN0b3JlKDApCisgICAgLCBtX2hpZGRlblByb3BlcnR5TmFt
ZShhZG9wdFB0cihuZXcgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUoKSkpCisgICAgLCBtX2NvbnN0cnVj
dG9yTW9kZShDb25zdHJ1Y3Rvck1vZGU6OkNyZWF0ZU5ld09iamVjdCkKKyAgICAsIG1fcmVjdXJz
aW9uTGV2ZWwoMCkKKyNpZm5kZWYgTkRFQlVHCisgICAgLCBtX2ludGVybmFsU2NyaXB0UmVjdXJz
aW9uTGV2ZWwoMCkKKyNlbmRpZgorICAgICwgbV9nY0V2ZW50RGF0YShhZG9wdFB0cihuZXcgR0NF
dmVudERhdGEoKSkpCisgICAgLCBtX3Nob3VsZENvbGxlY3RHYXJiYWdlU29vbihmYWxzZSkKK3sK
K30KKworVjhQZXJJc29sYXRlRGF0YTo6flY4UGVySXNvbGF0ZURhdGEoKQoreworfQorCitWOFBl
cklzb2xhdGVEYXRhKiBWOFBlcklzb2xhdGVEYXRhOjpjcmVhdGUodjg6Oklzb2xhdGUqIGlzb2xh
dGUpCit7CisgICAgQVNTRVJUKGlzb2xhdGUpOworICAgIEFTU0VSVCghaXNvbGF0ZS0+R2V0RGF0
YSgpKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gbmV3IFY4UGVySXNvbGF0ZURhdGEo
aXNvbGF0ZSk7CisgICAgaXNvbGF0ZS0+U2V0RGF0YShkYXRhKTsKKyAgICByZXR1cm4gZGF0YTsK
K30KKwordm9pZCBWOFBlcklzb2xhdGVEYXRhOjplbnN1cmVJbml0aWFsaXplZCh2ODo6SXNvbGF0
ZSogaXNvbGF0ZSkgCit7CisgICAgQVNTRVJUKGlzb2xhdGUpOworICAgIGlmICghaXNvbGF0ZS0+
R2V0RGF0YSgpKSAKKyAgICAgICAgY3JlYXRlKGlzb2xhdGUpOworfQorCit2b2lkIFY4UGVySXNv
bGF0ZURhdGE6OmRpc3Bvc2Uodjg6Oklzb2xhdGUqIGlzb2xhdGUpCit7CisgICAgdm9pZCogZGF0
YSA9IGlzb2xhdGUtPkdldERhdGEoKTsKKyAgICBkZWxldGUgc3RhdGljX2Nhc3Q8VjhQZXJJc29s
YXRlRGF0YSo+KGRhdGEpOworICAgIGlzb2xhdGUtPlNldERhdGEoMCk7Cit9CisKK3ZvaWQgVjhQ
ZXJJc29sYXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBNZW1vcnlJbnN0cnVtZW50YXRpb246OkJpbmRpbmcpOworICAgIGluZm8u
YWRkSGFzaE1hcChtX3Jhd1RlbXBsYXRlcyk7CisgICAgaW5mby5hZGRIYXNoTWFwKG1fdGVtcGxh
dGVzKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3N0cmluZ0NhY2hlKTsKKyAg
ICBpbmZvLmFkZFZlY3RvcihtX2RvbURhdGFMaXN0KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9kb21EYXRhTGlzdC5zaXplKCk7IGkrKykKKyAgICAgICAgaW5mby5hZGRJbnN0cnVt
ZW50ZWRNZW1iZXIobV9kb21EYXRhTGlzdFtpXSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MmRhNzdlNDJkNzUwZDhiNTEzZjY2OTVhMDM5YjMwOGE4Mjg4NzZjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJc29sYXRlRGF0YS5o
CkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVjhQZXJJc29sYXRlRGF0
YV9oCisjZGVmaW5lIFY4UGVySXNvbGF0ZURhdGFfaAorCisjaW5jbHVkZSA8djguaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NRGF0YVN0b3Jl
OworY2xhc3MgR0NFdmVudERhdGE7CitjbGFzcyBJbnRlZ2VyQ2FjaGU7CitjbGFzcyBNZW1vcnlP
YmplY3RJbmZvOworY2xhc3MgU3RyaW5nQ2FjaGU7CitjbGFzcyBWOEhpZGRlblByb3BlcnR5TmFt
ZTsKK3N0cnVjdCBXcmFwcGVyVHlwZUluZm87CisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorY2xh
c3MgRXh0ZXJuYWxTdHJpbmdWaXNpdG9yOworI2VuZGlmCisKK3R5cGVkZWYgV1RGOjpWZWN0b3I8
RE9NRGF0YVN0b3JlKj4gRE9NRGF0YUxpc3Q7CisKKyNpZm5kZWYgTkRFQlVHCitjbGFzcyBHbG9i
YWxIYW5kbGVJbmZvOwordHlwZWRlZiBIYXNoTWFwPHY4OjpWYWx1ZSosIEdsb2JhbEhhbmRsZUlu
Zm8qPiBHbG9iYWxIYW5kbGVNYXA7CisjZW5kaWYKKworY2xhc3MgVjhQZXJJc29sYXRlRGF0YSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFY4UGVySXNvbGF0ZURhdGEqIGNyZWF0ZSh2ODo6SXNvbGF0
ZSopOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZUluaXRpYWxpemVkKHY4OjpJc29sYXRlKik7Cisg
ICAgc3RhdGljIFY4UGVySXNvbGF0ZURhdGEqIGN1cnJlbnQodjg6Oklzb2xhdGUqIGlzb2xhdGUg
PSAwKQorICAgIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKCFpc29sYXRlKSkKKyAgICAgICAgICAg
IGlzb2xhdGUgPSB2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpOworICAgICAgICBBU1NFUlQoaXNv
bGF0ZS0+R2V0RGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFY4UGVySXNvbGF0
ZURhdGEqPihpc29sYXRlLT5HZXREYXRhKCkpOyAKKyAgICB9CisgICAgc3RhdGljIHZvaWQgZGlz
cG9zZSh2ODo6SXNvbGF0ZSopOworCisgICAgdHlwZWRlZiBIYXNoTWFwPFdyYXBwZXJUeXBlSW5m
byosIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiA+IFRlbXBsYXRlTWFwOwor
CisgICAgVGVtcGxhdGVNYXAmIHJhd1RlbXBsYXRlTWFwKCkgeyByZXR1cm4gbV9yYXdUZW1wbGF0
ZXM7IH0KKyAgICBUZW1wbGF0ZU1hcCYgdGVtcGxhdGVNYXAoKSB7IHJldHVybiBtX3RlbXBsYXRl
czsgfQorICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+JiB0b1N0cmluZ05hbWUoKSB7IHJl
dHVybiBtX3RvU3RyaW5nTmFtZTsgfQorICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiYgdG9TdHJpbmdUZW1wbGF0ZSgpIHsgcmV0dXJuIG1fdG9TdHJpbmdUZW1wbGF0ZTsg
fQorCisgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiBsYXp5RXZlbnRM
aXN0ZW5lclRvU3RyaW5nVGVtcGxhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbGF6eUV2
ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlOworICAgIH0KKworICAgIFN0cmluZ0NhY2hlKiBz
dHJpbmdDYWNoZSgpIHsgcmV0dXJuIG1fc3RyaW5nQ2FjaGUuZ2V0KCk7IH0KKyAgICBJbnRlZ2Vy
Q2FjaGUqIGludGVnZXJDYWNoZSgpIHsgcmV0dXJuIG1faW50ZWdlckNhY2hlLmdldCgpOyB9CisK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIHZvaWQgdmlzaXRFeHRlcm5hbFN0cmluZ3MoRXh0
ZXJuYWxTdHJpbmdWaXNpdG9yKik7CisjZW5kaWYKKyAgICBET01EYXRhTGlzdCYgYWxsU3RvcmVz
KCkgeyByZXR1cm4gbV9kb21EYXRhTGlzdDsgfQorCisgICAgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUq
IGhpZGRlblByb3BlcnR5TmFtZSgpIHsgcmV0dXJuIG1faGlkZGVuUHJvcGVydHlOYW1lLmdldCgp
OyB9CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+JiBhdXhpbGlhcnlDb250ZXh0KCkg
eyByZXR1cm4gbV9hdXhpbGlhcnlDb250ZXh0OyB9CisKKyAgICB2b2lkIHJlZ2lzdGVyRE9NRGF0
YVN0b3JlKERPTURhdGFTdG9yZSogZG9tRGF0YVN0b3JlKSAKKyAgICB7CisgICAgICAgIG1fZG9t
RGF0YUxpc3QuYXBwZW5kKGRvbURhdGFTdG9yZSk7CisgICAgfQorCisgICAgdm9pZCB1bnJlZ2lz
dGVyRE9NRGF0YVN0b3JlKERPTURhdGFTdG9yZSogZG9tRGF0YVN0b3JlKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKG1fZG9tRGF0YUxpc3QuZmluZChkb21EYXRhU3RvcmUpKTsKKyAgICAgICAgbV9k
b21EYXRhTGlzdC5yZW1vdmUobV9kb21EYXRhTGlzdC5maW5kKGRvbURhdGFTdG9yZSkpOworICAg
IH0KKworICAgIC8vIERPTURhdGFTdG9yZSBpcyBvd25lZCBvdXRzaWRlIFY4UGVySXNvbGF0ZURh
dGEuCisgICAgRE9NRGF0YVN0b3JlKiBkb21EYXRhU3RvcmUoKSB7IHJldHVybiBtX2RvbURhdGFT
dG9yZTsgfQorICAgIHZvaWQgc2V0RE9NRGF0YVN0b3JlKERPTURhdGFTdG9yZSogc3RvcmUpIHsg
bV9kb21EYXRhU3RvcmUgPSBzdG9yZTsgfQorCisgICAgaW50IHJlY3Vyc2lvbkxldmVsKCkgY29u
c3QgeyByZXR1cm4gbV9yZWN1cnNpb25MZXZlbDsgfQorICAgIGludCBpbmNyZW1lbnRSZWN1cnNp
b25MZXZlbCgpIHsgcmV0dXJuICsrbV9yZWN1cnNpb25MZXZlbDsgfQorICAgIGludCBkZWNyZW1l
bnRSZWN1cnNpb25MZXZlbCgpIHsgcmV0dXJuIC0tbV9yZWN1cnNpb25MZXZlbDsgfQorCisjaWZu
ZGVmIE5ERUJVRworICAgIEdsb2JhbEhhbmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwKCkgeyByZXR1
cm4gbV9nbG9iYWxIYW5kbGVNYXA7IH0KKworICAgIGludCBpbnRlcm5hbFNjcmlwdFJlY3Vyc2lv
bkxldmVsKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbFNjcmlwdFJlY3Vyc2lvbkxldmVsOyB9
CisgICAgaW50IGluY3JlbWVudEludGVybmFsU2NyaXB0UmVjdXJzaW9uTGV2ZWwoKSB7IHJldHVy
biArK21faW50ZXJuYWxTY3JpcHRSZWN1cnNpb25MZXZlbDsgfQorICAgIGludCBkZWNyZW1lbnRJ
bnRlcm5hbFNjcmlwdFJlY3Vyc2lvbkxldmVsKCkgeyByZXR1cm4gLS1tX2ludGVybmFsU2NyaXB0
UmVjdXJzaW9uTGV2ZWw7IH0KKyNlbmRpZgorCisgICAgR0NFdmVudERhdGEqIGdjRXZlbnREYXRh
KCkgeyByZXR1cm4gbV9nY0V2ZW50RGF0YS5nZXQoKTsgfQorCisgICAgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKKyAgICAvLyBHaXZlcyB0aGUgc3lz
dGVtIGEgaGludCB0aGF0IHdlIHNob3VsZCByZXF1ZXN0IGdhcmJhZ2UgY29sbGVjdGlvbgorICAg
IC8vIHVwb24gdGhlIG5leHQgY2xvc2Ugb3IgbmF2aWdhdGlvbiBldmVudCwgYmVjYXVzZSBzb21l
IGV4cGVuc2l2ZQorICAgIC8vIG9iamVjdHMgaGF2ZSBiZWVuIGFsbG9jYXRlZCB0aGF0IHdlIHdh
bnQgdG8gdGFrZSBldmVyeSBvcHBvcnR1bml0eQorICAgIC8vIHRvIGNvbGxlY3QuCisgICAgdm9p
ZCBzZXRTaG91bGRDb2xsZWN0R2FyYmFnZVNvb24oKSB7IG1fc2hvdWxkQ29sbGVjdEdhcmJhZ2VT
b29uID0gdHJ1ZTsgfQorICAgIHZvaWQgY2xlYXJTaG91bGRDb2xsZWN0R2FyYmFnZVNvb24oKSB7
IG1fc2hvdWxkQ29sbGVjdEdhcmJhZ2VTb29uID0gZmFsc2U7IH0KKyAgICBib29sIHNob3VsZENv
bGxlY3RHYXJiYWdlU29vbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ29sbGVjdEdhcmJhZ2VT
b29uOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgVjhQZXJJc29sYXRlRGF0YSh2ODo6SXNv
bGF0ZSopOworICAgIH5WOFBlcklzb2xhdGVEYXRhKCk7CisKKyAgICBUZW1wbGF0ZU1hcCBtX3Jh
d1RlbXBsYXRlczsKKyAgICBUZW1wbGF0ZU1hcCBtX3RlbXBsYXRlczsKKyAgICB2ODo6UGVyc2lz
dGVudDx2ODo6U3RyaW5nPiBtX3RvU3RyaW5nTmFtZTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gbV90b1N0cmluZ1RlbXBsYXRlOworICAgIHY4OjpQZXJzaXN0ZW50
PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBtX2xhenlFdmVudExpc3RlbmVyVG9TdHJpbmdUZW1wbGF0
ZTsKKyAgICBPd25QdHI8U3RyaW5nQ2FjaGU+IG1fc3RyaW5nQ2FjaGU7CisgICAgT3duUHRyPElu
dGVnZXJDYWNoZT4gbV9pbnRlZ2VyQ2FjaGU7CisKKyAgICBET01EYXRhTGlzdCBtX2RvbURhdGFM
aXN0OworICAgIERPTURhdGFTdG9yZSogbV9kb21EYXRhU3RvcmU7CisKKyAgICBPd25QdHI8VjhI
aWRkZW5Qcm9wZXJ0eU5hbWU+IG1faGlkZGVuUHJvcGVydHlOYW1lOworICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpDb250ZXh0PiBtX2F1eGlsaWFyeUNvbnRleHQ7CisKKyAgICBib29sIG1fY29uc3Ry
dWN0b3JNb2RlOworICAgIGZyaWVuZCBjbGFzcyBDb25zdHJ1Y3Rvck1vZGU7CisKKyAgICBpbnQg
bV9yZWN1cnNpb25MZXZlbDsKKworI2lmbmRlZiBOREVCVUcKKyAgICBHbG9iYWxIYW5kbGVNYXAg
bV9nbG9iYWxIYW5kbGVNYXA7CisgICAgaW50IG1faW50ZXJuYWxTY3JpcHRSZWN1cnNpb25MZXZl
bDsKKyNlbmRpZgorICAgIE93blB0cjxHQ0V2ZW50RGF0YT4gbV9nY0V2ZW50RGF0YTsKKyAgICBi
b29sIG1fc2hvdWxkQ29sbGVjdEdhcmJhZ2VTb29uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gVjhQZXJJc29sYXRlRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuY3BwCmluZGV4IDI1MmNiMTgxN2E2OTU2YjJiMDE2ZDE1NTJkYzBmYTVhZTcy
ZGE0MDguLmI2MzdkNGQ1YmEyYWExZDYxMzZmYWY0NTc4ZjMwODJlY2YyYjNmMTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBW
OFByb3h5OjpyZXNldElzb2xhdGVkV29ybGRzKCkKIAogdm9pZCBWOFByb3h5OjpoaW50Rm9yR0NJ
Zk5lY2Vzc2FyeSgpCiB7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJp
bmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIFY4UGVySXNvbGF0ZURhdGEqIGRh
dGEgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CiAgICAgaWYgKGRhdGEtPnNob3VsZENv
bGxlY3RHYXJiYWdlU29vbigpKSB7CiAgICAgICAgIGNvbnN0IGludCBsb25nSWRsZVBhdXNlSW5N
cyA9IDEwMDA7CiAgICAgICAgIGRhdGEtPmNsZWFyU2hvdWxkQ29sbGVjdEdhcmJhZ2VTb29uKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3Bl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmgKaW5kZXgg
MGU3NzZlMWVhYWU1MWY5YjgyMGMyNGQwM2I2NWQ1YmU4NDlhMWIzMC4uNmU1ZjUzZjFkOWRmMTEx
OWQ0MGM5MjA0NzRmNzJmMzcyNDU2ODNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhSZWN1cnNpb25TY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UmVjdXJzaW9uU2NvcGUuaApAQCAtNjAsMjQgKzYwLDI0IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBWOFJlY3Vyc2lvblNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
CiAgICAgICAgIDogbV9pc0RvY3VtZW50Q29udGV4dChjb250ZXh0ICYmIGNvbnRleHQtPmlzRG9j
dW1lbnQoKSkKICAgICB7Ci0gICAgICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50
KCktPmluY3JlbWVudFJlY3Vyc2lvbkxldmVsKCk7CisgICAgICAgIFY4UGVySXNvbGF0ZURhdGE6
OmN1cnJlbnQoKS0+aW5jcmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsKICAgICB9CiAKICAgICB+VjhS
ZWN1cnNpb25TY29wZSgpCiAgICAgewotICAgICAgICBpZiAoIVY4QmluZGluZ1Blcklzb2xhdGVE
YXRhOjpjdXJyZW50KCktPmRlY3JlbWVudFJlY3Vyc2lvbkxldmVsKCkpCisgICAgICAgIGlmICgh
VjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5kZWNyZW1lbnRSZWN1cnNpb25MZXZlbCgpKQog
ICAgICAgICAgICAgZGlkTGVhdmVTY3JpcHRDb250ZXh0KCk7CiAgICAgfQogCiAgICAgc3RhdGlj
IGludCByZWN1cnNpb25MZXZlbCgpCiAgICAgewotICAgICAgICByZXR1cm4gVjhCaW5kaW5nUGVy
SXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+cmVjdXJzaW9uTGV2ZWwoKTsKKyAgICAgICAgcmV0dXJu
IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+cmVjdXJzaW9uTGV2ZWwoKTsKICAgICB9CiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgc3RhdGljIGJvb2wgcHJvcGVybHlVc2VkKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiByZWN1cnNpb25MZXZlbCgpID4gMCB8fCBWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YTo6Y3VycmVudCgpLT5pbnRlcm5hbFNjcmlwdFJlY3Vyc2lvbkxldmVsKCkgPiAwOworICAg
ICAgICByZXR1cm4gcmVjdXJzaW9uTGV2ZWwoKSA+IDAgfHwgVjhQZXJJc29sYXRlRGF0YTo6Y3Vy
cmVudCgpLT5pbnRlcm5hbFNjcmlwdFJlY3Vyc2lvbkxldmVsKCkgPiAwOwogICAgIH0KICNlbmRp
ZgogCkBAIC04NiwxNCArODYsMTQgQEAgcHVibGljOgogICAgICAgICBNaWNyb3Rhc2tTdXBwcmVz
c2lvbigpCiAgICAgICAgIHsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAgICBWOEJpbmRpbmdQ
ZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5pbmNyZW1lbnRJbnRlcm5hbFNjcmlwdFJlY3Vyc2lv
bkxldmVsKCk7CisgICAgICAgICAgICBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmluY3Jl
bWVudEludGVybmFsU2NyaXB0UmVjdXJzaW9uTGV2ZWwoKTsKICNlbmRpZgogICAgICAgICB9CiAK
ICAgICAgICAgfk1pY3JvdGFza1N1cHByZXNzaW9uKCkKICAgICAgICAgewogI2lmbmRlZiBOREVC
VUcKLSAgICAgICAgICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmRlY3Jl
bWVudEludGVybmFsU2NyaXB0UmVjdXJzaW9uTGV2ZWwoKTsKKyAgICAgICAgICAgIFY4UGVySXNv
bGF0ZURhdGE6OmN1cnJlbnQoKS0+ZGVjcmVtZW50SW50ZXJuYWxTY3JpcHRSZWN1cnNpb25MZXZl
bCgpOwogI2VuZGlmCiAgICAgICAgIH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhVdGlsaXRpZXMuY3BwCmluZGV4IDRkYWFmOThhYjUxOGUyNjZjZGEwOGEyZWI2ZmZmYTU4
ZDVmNjc2M2EuLjM5ZTk4NmY5ZTU0NGI1NTEyZjcyZjM5ZmVhMzQ0NmY5ZjI1MWQ5NDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKQEAgLTYzLDcgKzYzLDcg
QEAgVjhBdXhpbGlhcnlDb250ZXh0Ojp+VjhBdXhpbGlhcnlDb250ZXh0KCkKIAogdjg6OlBlcnNp
c3RlbnQ8djg6OkNvbnRleHQ+JiBWOEF1eGlsaWFyeUNvbnRleHQ6OmF1eGlsaWFyeUNvbnRleHQo
KQogewotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYgY29udGV4dCA9IFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmF1eGlsaWFyeUNvbnRleHQoKTsKKyAgICB2ODo6
UGVyc2lzdGVudDx2ODo6Q29udGV4dD4mIGNvbnRleHQgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJy
ZW50KCktPmF1eGlsaWFyeUNvbnRleHQoKTsKICAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCiAg
ICAgICAgIGNvbnRleHQgPSB2ODo6Q29udGV4dDo6TmV3KCk7CiAgICAgcmV0dXJuIGNvbnRleHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFZhbHVlQ2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhWYWx1ZUNhY2hlLmNwcAppbmRleCBiNTQ4
ZDhkMjg2NDY5MDU0ZWNkYjg1ZjA1YzczZjVhZjcyN2E4ODBjLi43ZGU0MzE4OTMyM2M0YWU3OGM4
ZWQ1MDFiOWQwMzcyZGU4ODgyNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFZhbHVlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
VmFsdWVDYWNoZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBtYWtlRXh0ZXJuYWxTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiBzdGF0aWMgdm9p
ZCBjYWNoZWRTdHJpbmdDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IHdyYXBwZXIs
IHZvaWQqIHBhcmFtZXRlcikKIHsKICAgICBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsID0gc3RhdGlj
X2Nhc3Q8U3RyaW5nSW1wbCo+KHBhcmFtZXRlcik7Ci0gICAgVjhCaW5kaW5nUGVySXNvbGF0ZURh
dGE6OmN1cnJlbnQoKS0+c3RyaW5nQ2FjaGUoKS0+cmVtb3ZlKHN0cmluZ0ltcGwpOworICAgIFY4
UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+c3RyaW5nQ2FjaGUoKS0+cmVtb3ZlKHN0cmluZ0lt
cGwpOwogICAgIHdyYXBwZXIuRGlzcG9zZSgpOwogICAgIHN0cmluZ0ltcGwtPmRlcmVmKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCA4MGZiN2Q2ZDY4MTZlM2QzM2IwZDM4ZTYyZGIzNTI0
ZTlmYThmOWU1Li42ZjE1MTFiMTBiMTY5ZTIwMjY1Yjc2OGRhNTg3NGFlMTU1YmExZjc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9u
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIFdvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eTo6aW5pdElzb2xhdGUoKQogICAgIHJlc291cmNlX2NvbnN0cmFpbnRzLnNl
dF9zdGFja19saW1pdCgmaGVyZSAtIGtXb3JrZXJNYXhTdGFja1NpemUgLyBzaXplb2YodWludDMy
X3QqKSk7CiAgICAgdjg6OlNldFJlc291cmNlQ29uc3RyYWludHMoJnJlc291cmNlX2NvbnN0cmFp
bnRzKTsKIAotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjplbnN1cmVJbml0aWFsaXplZCh2
ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKKyAgICBWOFBlcklzb2xhdGVEYXRhOjplbnN1cmVJ
bml0aWFsaXplZCh2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKIH0KIAogYm9vbCBXb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRDb250ZXh0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRl
eCA3OWM4ODEwZmI2YmJjM2Q4N2ZmZDI5ZGYyMWYzYzFkN2FlYTY3ZTY3Li5kNjc4OTUxMjk2NzMw
OTBmNWI4YjBiYTZhMzdhMmRkMzVmMjBjZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjAsNyArNjAsNyBA
QCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtlckNv
bnRleHQqIHdvcmtlckNvbnRleHQpCiAgICAgLCBtX2V4ZWN1dGlvbkZvcmJpZGRlbihmYWxzZSkK
ICAgICAsIG1fZXhlY3V0aW9uU2NoZWR1bGVkVG9UZXJtaW5hdGUoZmFsc2UpCiB7Ci0gICAgVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3Jl
YXRlKG1faXNvbGF0ZSk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0
ZURhdGE6OmNyZWF0ZShtX2lzb2xhdGUpOwogICAgIGRhdGEtPmFsbFN0b3JlcygpLmFwcGVuZCgm
bV9ET01EYXRhU3RvcmUpOwogICAgIGRhdGEtPnNldERPTURhdGFTdG9yZSgmbV9ET01EYXRhU3Rv
cmUpOwogICAgIG1faXNvbGF0ZS0+RW50ZXIoKTsKQEAgLTc3LDcgKzc3LDcgQEAgV29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIoKQogICAgIFdlYktpdDo6UGxh
dGZvcm06OmN1cnJlbnQoKS0+ZGlkU3RvcFdvcmtlclJ1bkxvb3AoV2ViS2l0OjpXZWJXb3JrZXJS
dW5Mb29wKCZtX3dvcmtlckNvbnRleHQtPnRocmVhZCgpLT5ydW5Mb29wKCkpKTsKICNlbmRpZgog
ICAgIG1fcHJveHkuY2xlYXIoKTsKLSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6ZGlzcG9z
ZShtX2lzb2xhdGUpOworICAgIFY4UGVySXNvbGF0ZURhdGE6OmRpc3Bvc2UobV9pc29sYXRlKTsK
ICAgICBtX2lzb2xhdGUtPkV4aXQoKTsKICAgICBtX2lzb2xhdGUtPkRpc3Bvc2UoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDYW52YXNF
bGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcAppbmRleCBmZTU0ZDg1NzJmNDA3MjdiOTAxNjEzMzJj
YjYwMDFiN2YwMjdhM2E5Li45NDI2MDJkMDYwYjYxOTgwYjFhY2RiYjcxMzU4MzAyZWYwY2YyNzAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2Fu
dmFzRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwCkBAIC05NCw3ICs5NCw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0Q2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgICAgIC8vIDNEIGNhbnZhcyBjb250ZXh0cyBjYW4gaG9s
ZCBvbiB0byBsb3RzIG9mIEdQVSByZXNvdXJjZXMsIGFuZCB3ZSB3YW50IHRvIHRha2UgYW4KICAg
ICAgICAgLy8gb3Bwb3J0dW5pdHkgdG8gZ2V0IHJpZCBvZiB0aGVtIGFzIHNvb24gYXMgcG9zc2li
bGUgd2hlbiB3ZSBuYXZpZ2F0ZSBhd2F5IGZyb20gcGFnZXMgdXNpbmcKICAgICAgICAgLy8gdGhl
bS4KLSAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIHBlcklzb2xhdGVEYXRhID0gVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoYXJncy5HZXRJc29sYXRlKCkpOworICAgICAg
ICBWOFBlcklzb2xhdGVEYXRhKiBwZXJJc29sYXRlRGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1
cnJlbnQoYXJncy5HZXRJc29sYXRlKCkpOwogICAgICAgICBwZXJJc29sYXRlRGF0YS0+c2V0U2hv
dWxkQ29sbGVjdEdhcmJhZ2VTb29uKCk7CiAKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHY4UmVzdWx0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPihyZXN1
bHQpLCBhcmdzLkdldElzb2xhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJLaXQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNw
cAppbmRleCBhM2YwZjgzOTFiNjhmY2NiM2Y4ZGQ2NTAzN2MzYzI3MjFlY2E0MDAyLi45MzMxZDA1
M2EyZDViZjQ0Yjk1YzJmNGE2MDZjZTliYzFmMzdiMTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYktpdC5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIGluaXRpYWxpemUoV2ViS2l0
UGxhdGZvcm1TdXBwb3J0KiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQpCiAKICAgICB2ODo6Vjg6OlNl
dEVudHJvcHlTb3VyY2UoJmdlbmVyYXRlRW50cm9weSk7CiAgICAgdjg6OlY4OjpJbml0aWFsaXpl
KCk7Ci0gICAgV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmVuc3VyZUluaXRpYWxp
emVkKHY4OjpJc29sYXRlOjpHZXRDdXJyZW50KCkpOworICAgIFdlYkNvcmU6OlY4UGVySXNvbGF0
ZURhdGE6OmVuc3VyZUluaXRpYWxpemVkKHY4OjpJc29sYXRlOjpHZXRDdXJyZW50KCkpOwogCiAj
aWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICAvLyBjdXJyZW50VGhyZWFkIHdpbGwg
YWx3YXlzIGJlIG5vbi1udWxsIGluIHByb2R1Y3Rpb24sIGJ1dCBjYW4gYmUgbnVsbCBpbiBDaHJv
bWl1bSB1bml0IHRlc3RzLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>